SQL - סינון עמודות NULL

תאו

משתמש פעיל
D I G I T A L
איך אפשר להביא רק את העמודות שיש להם ערך כלשהוא ?
לסנן את כל העמודות שהם NULL
 

ינח

משתמש מקצוען
D I G I T A L
אולי משהו כזה?
SELECT COLUMN_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = mydata
AND TABLE_NAME = mytable
AND IS_NULLABLE = 'No'​
 

ינח

משתמש מקצוען
D I G I T A L
mydata - שם הדטה ( יכולה להוריד את השורה הזו )
mytable - שם הטבלה שיש לשנות
ותורידי את הסימני ציטוט '' לא הצלחתי לערוך
 

נחליאלי(ת)

משתמש סופר מקצוען
הנדסת תוכנה
אולי משהו כזה?
SELECT COLUMN_NAME
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = mydata
AND TABLE_NAME = mytable
AND IS_NULLABLE = 'No'​
זה לא שולף את כל העמודות שיש להם תוכן
אלא את כל העמודות שאין בהם null(ולא רק זה, אלא רק את העמודות שמוגדר עליהן NOT NULL)
וזה אחרת לגמרי
 

P.S.

משתמש מקצוען
אם הכל דינמי, אפשר אולי לעשות פיתרון כזה:
1. את השאילתא המקורית להכניס לטבלה זמנית.
2.לכתוב פונקציה שמקבלת שם עמודה ושם הטבלה הזמנית ומחזירה bit האם יש ערכים בעמודה הזו.
(בקוד של הפונקציה נצרך לבנות שאילתא דינמית, ולהריץ אותה ע"י הפרוצדורה sp_executesql)
3. לשלוף את שמות העמודות של הטבלה הזמנית ע"י :
SQL:
Select [name] From Tempdb.Sys.Columns Where Object_ID = Object_ID('tempdb..<temp_table_name>')
ולשלוח את שמות העמודות לפונקציה מסעיף 2.
לסנן את התוצאות שיחזיר רק שמות עמודות שהפונקציה החזירה ערך true.
לחבר את התוצאות למחרוזת אחת ע"י הפונקציה string_agg (נתמך רק בגירסאות חדשות יותר של sql server)
להוסיף למחרוזת של שמות העמודות select בהתחלה, ו-'from <temp_table_name>' בסוף.
את כל המחרוזת הזאת לשמור בתוך משתנה varchar(max)
4. להריץ את המחרוזת/שאילתא הזאת ע"י הפרוצדורה sp_executesql
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קלו

א הוֹדוּ לַיהוָה כִּי טוֹב כִּי לְעוֹלָם חַסְדּוֹ:ב הוֹדוּ לֵאלֹהֵי הָאֱלֹהִים כִּי לְעוֹלָם חַסְדּוֹ:ג הוֹדוּ לַאֲדֹנֵי הָאֲדֹנִים כִּי לְעוֹלָם חַסְדּוֹ:ד לְעֹשֵׂה נִפְלָאוֹת גְּדֹלוֹת לְבַדּוֹ כִּי לְעוֹלָם חַסְדּוֹ:ה לְעֹשֵׂה הַשָּׁמַיִם בִּתְבוּנָה כִּי לְעוֹלָם חַסְדּוֹ:ו לְרֹקַע הָאָרֶץ עַל הַמָּיִם כִּי לְעוֹלָם חַסְדּוֹ:ז לְעֹשֵׂה אוֹרִים גְּדֹלִים כִּי לְעוֹלָם חַסְדּוֹ:ח אֶת הַשֶּׁמֶשׁ לְמֶמְשֶׁלֶת בַּיּוֹם כִּי לְעוֹלָם חַסְדּוֹ:ט אֶת הַיָּרֵחַ וְכוֹכָבִים לְמֶמְשְׁלוֹת בַּלָּיְלָה כִּי לְעוֹלָם חַסְדּוֹ:י לְמַכֵּה מִצְרַיִם בִּבְכוֹרֵיהֶם כִּי לְעוֹלָם חַסְדּוֹ:יא וַיּוֹצֵא יִשְׂרָאֵל מִתּוֹכָם כִּי לְעוֹלָם חַסְדּוֹ:יב בְּיָד חֲזָקָה וּבִזְרוֹעַ נְטוּיָה כִּי לְעוֹלָם חַסְדּוֹ:יג לְגֹזֵר יַם סוּף לִגְזָרִים כִּי לְעוֹלָם חַסְדּוֹ:יד וְהֶעֱבִיר יִשְׂרָאֵל בְּתוֹכוֹ כִּי לְעוֹלָם חַסְדּוֹ:טו וְנִעֵר פַּרְעֹה וְחֵילוֹ בְיַם סוּף כִּי לְעוֹלָם חַסְדּוֹ:טז לְמוֹלִיךְ עַמּוֹ בַּמִּדְבָּר כִּי לְעוֹלָם חַסְדּוֹ:יז לְמַכֵּה מְלָכִים גְּדֹלִים כִּי לְעוֹלָם חַסְדּוֹ:יח וַיַּהֲרֹג מְלָכִים אַדִּירִים כִּי לְעוֹלָם חַסְדּוֹ:יט לְסִיחוֹן מֶלֶךְ הָאֱמֹרִי כִּי לְעוֹלָם חַסְדּוֹ:כ וּלְעוֹג מֶלֶךְ הַבָּשָׁן כִּי לְעוֹלָם חַסְדּוֹ:כא וְנָתַן אַרְצָם לְנַחֲלָה כִּי לְעוֹלָם חַסְדּוֹ:כב נַחֲלָה לְיִשְׂרָאֵל עַבְדּוֹ כִּי לְעוֹלָם חַסְדּוֹ:כג שֶׁבְּשִׁפְלֵנוּ זָכַר לָנוּ כִּי לְעוֹלָם חַסְדּוֹ:כד וַיִּפְרְקֵנוּ מִצָּרֵינוּ כִּי לְעוֹלָם חַסְדּוֹ:כה נֹתֵן לֶחֶם לְכָל בָּשָׂר כִּי לְעוֹלָם חַסְדּוֹ:כו הוֹדוּ לְאֵל הַשָּׁמָיִם כִּי לְעוֹלָם חַסְדּוֹ:
נקרא  16  פעמים

לוח מודעות

למעלה