如何在SQL查询中使用嵌套大小写和else



我有两个来自同一个数据库的表和一个来自另一个数据库的表。一个数据库中的表是从中DCCT的,我想检索两列

logtime beam_current

另一个数据库中的表main_vacuum_analogmain_vacuum_status。在这两个表上,我想应用以下条件

1) If表中main_vacuum_status value of columns st1_vs1_bag1_rb,st1_vs1_bag2_rb,st1_vs1_bag3_rb is 0

THEN

st1_vs1_bag1_rb,st1_vs1_bag2_rb,st1_vs1_bag3_rb in main_vacuum_analog is set to OFF的价值

ELSE

st1_vs1_bag1_rb,st1_vs1_bag2_rb,st1_vs1_bag3_rb in main_vacuum_analog reamins as it is的价值

2)DCCT.logtime == main_vacuum_analog.logtime 时,DCCT表中beam_current and logtime也应该retrieved

对于上述条件,我必须在 sql 查询中使用Case and else。我尝试了我的sql查询代码-

select COALESCE(
  case when a.st1_vs1_bag1_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag1_rb end,
  CASE when a.st1_vs1_bag2_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag2_rb end,
  CASE when a.st1_vs1_bag3_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag3_rb end,
  CASE when a.st1_vs1_bag4_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag4_rb end,
  CASE when a.st1_vs1_bag5_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag5_rb end,
  CASE when a.st1_vs1_bag6_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag6_rb end,
  CASE when a.st1_vs1_bag7_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag7_rb end,
  CASE when a.st1_vs1_bag8_rb='0' and a.logtime=b.logtime then 'OFF' else c.st1_vs1_bag8_rb **end as b.logtime,**
 from main_vacuum_status a, INDUS2_BDS.DBO.DCCT b,c.main_vacuum_analog
) 

我不知道在sql查询中 end as什么,它给出了语法不正确的错误消息,而且我怀疑这是否是可以满足我条件的代码。

我认为你应该添加一个选择,

喜欢这个:(选择 当 a.st1_vs1_bag1_rb='0' 和 a.logtime=b.logtime 然后"OFF' 否则c.st1_vs1_bag1_rb结束的情况下 从main_vacuum_status A,INDUS2_BDS。DBO。DCCT b,c.main_vacuum_analog )

最新更新