如何從Resultset或DataList中刪除空列?Java:刪除Resultset中的空列
例如:我運行一個查詢,則SQL返回一個結果
Name Age Address Telephone
---- --- ------- ---------
Zed 23 12345456
Charlo 25 53232323
我怎樣才能在結果中刪除空列「地址」?
在此先感謝。
如何從Resultset或DataList中刪除空列?Java:刪除Resultset中的空列
例如:我運行一個查詢,則SQL返回一個結果
Name Age Address Telephone
---- --- ------- ---------
Zed 23 12345456
Charlo 25 53232323
我怎樣才能在結果中刪除空列「地址」?
在此先感謝。
如果地址始終爲空或不是必需的,那麼只需更改生成ResultSet
的查詢即可。例如,您的查詢會是這樣......
SELECT Name, Age, Telephone FROM Table;
否則,如果一些條目有一個地址,您需要在您遍歷他們在您的ResultSet
檢測用空值。
你也可以改變你的查詢只與一個地址,像這樣的返回結果...
SELECT Name, Age, Address, Telephone FROM Table WHERE Address IS NOT NULL;
你無法預先知道一整列是否是空的 - 你必須遍歷在ResultSet
每個條目檢測到它,或者寫一個數查詢像這樣...
SELECT COUNT(Address) FROM Table WHERE Address IS NOT NULL;
這將返回0
如果沒有地址。你也可以在你的其他專欄上使用它。
如果查詢中的列始終爲空,則無法從該查詢中刪除列,但可以從將ResultSet
映射到的對象中排除所有NULL值。 (你不會通過ResultSet
走出持久層,是嗎?)
如果列總是空的,那麼,正如其他人已經注意到的那樣,只要從查詢的SELECT子句中移除它即可。如果您使用「SELECT *」,則不要。這是一個不好的做法。您可能正在處理各種未使用的數據。如果一個SELECT *選取了一個不需要的5字節字段,我認爲沒什麼大不了的。但即使現在這樣做了,下週你或其他人可能會在記錄中添加一個50k BLOB字段,然後爲了獲得需要的50個字節,你還需要處理50k個不需要的字節。
如果你的意思是說你得到ResultSet後發現該列總是空白或空的,那又如何?你必須閱讀數據才能發現這一點。 ColumnSet在ResultSet中並不強制顯示屏幕上顯示的內容。如果你想消除顯示器的列,你可以在代碼中做到這一點。
如果地址列總是未設置,則選擇僅名稱,年齡和電話,如果有時設置,則必須處理空值。 – BigMike
如果地址始終爲空,請不要選中它。 –
但問題是我們不知道在查詢之前哪一列將全爲空。 – Ianthe