在某些客户我使用旧数据库,但现在我必须为新客户添加另一列。我的程序现在应该查询新列,如果它存在,并使用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