在某些客戶我使用舊數據庫,但現在我必須爲新客戶添加另一列。我的程序現在應該查詢新列,如果它存在,並使用NULL,如果它不存在。SQL - 如果OLEQuery中存在選擇列
使用C#和OLEQuery這是工作迄今:
string sql = @"SELECT i.[ID] AS cID,
pg.[Name],
pg.[ID] AS pgid,
i.[time],
defect = CASE i.[defect] WHEN 0 THEN 'OK' WHEN 1 THEN 'NOK' END,
FROM inspection AS i WITH (NOLOCK) INNER JOIN programs as pg ON i.programid = pg.[ID]
WHERE i.[time] BETWEEN ... ///SOME MORE CODE IS FOLLOWING HERE!
";
但現在我想加入到這個(可以/不可以)現有列timeTo。
string sql = @"SELECT i.[ID] AS cID,
pg.[Name],
pg.[ID] AS pgid,
i.[time],
defect = CASE i.[defect] WHEN 0 THEN 'OK' WHEN 1 THEN 'NOK' END,
timeTo = CASE i.[timeTo] WHEN EXISTS THEN i.[timeTo] ELSE NULL END
FROM inspection AS i WITH (NOLOCK) INNER JOIN programs as pg ON i.programid = pg.[ID]
WHERE i.[time] BETWEEN ... //SOME MORE CODE IS FOLLOWING HERE!
";
我知道使用這個「存在」關鍵字很困難,但是有沒有「單行」解決方案?我發現了其他幾種案例選擇解決方案由於我需要在具有不同列的幾個地方使用此解決方案,因此案例選擇解決方案不適合。 感謝您的幫助
您使用哪種rdbms?例如sql-server,mysql或其他東西? – BeanFrog
對不起,它是sql-server。 –
「存在」,你的意思是不是'null'? – JohnHC