我有一個70加列的表。我經常在桌子上搜索一行。SQL查詢只列出結果中的'非空'字段
例:
select * from customer where customer_id='xyz';
的customer_id
是獨一無二的。
在結果中,最有可能是30到40列與空值。
我一直只對非空字段感興趣。
SQL中有沒有辦法只列出那些非空的列?
PS:不幸的是,非空字段對於所有客戶來說都不是相同的字段。假設,如果'客戶A'在'列R'中爲空,則'客戶B'在該列中可能具有有效值。最後,我的查詢將始終只集中在任何給定時間的1位客戶。
簡要例如:
查詢:
select * from customer where cust_id='826122';
實際結果:
的cust_id - 826122
cust_fname - 馬大
cust_lname - 凱恩
cust_alt_add - 空
cust_cell_acode - 210
cust_home_phone - 空
預期的結果:(我不想空值的列出現在我的結果)
CUST_ID - 826122
cust_fname - 瑪莎
cust_lname - 凱恩
cust_cell_acode - 210
向我們展示您的數據示例以及您希望查詢輸出的內容。 – RBarryYoung
有沒有辦法......答案是肯定的:一種方法是編寫一個你調用的包裝程序。它獲得SQL迭代的結果,儘管每個列使用從CTE中選擇數據的列構建CTE並返回結果集。爲什麼人們會想要做到這一點,雖然...因爲你改變了要求的結果(選擇*)不再做*了...超越了我。 – xQbert
如果您正在運行.net,java,coldfusion或類似的查詢,您最好使用應用程序代碼來實現您的目標。 –