我只需要選擇一列,只要它存在於表中,否則它可以設置爲空。SQL - 有條件地選擇列(如果存在的話)
下面樣品臺,可以說該marks
山坳是沒有必要存在,所以需要的,如果它存在
表1進行檢查:
name marks
joe 10
john 11
mary 13
查詢:
select
name,
marks if it exists else null as marks1 -- pseudo code
from
table1
應該選擇哪一行marks
?
你會如何*不知道'marks'是table1上的一列嗎? –
您應該**重新考慮您管理數據庫架構和遷移的方式。不知道列是否存在的事實可能表明您正在使用錯誤的過程在數據庫中創建和更新表。另外:擁有'marks1'表也可能是非標準化設計的標誌。你可以使用動態SQL來實現類似的功能,但它可以更好地解決你管理表的方式 –
@a_horse_with_no_name同意更廣泛的觀點 - 但這不是模式和移植的問題 - 現實世界的數據很混亂:)並且上下文不是應用程序,而是來自我無法控制的來源的一些真實世界數據 - 它可能或可能不是所有期望的列 - 問題真的在此上下文中,如果可能的話爲此進行一些檢查。 – user3206440