读书人

请问一个sql语句有关问题

发布时间: 2012-03-28 15:40:03 作者: rapoo

请教一个sql语句问题
我有一张表 表中有三个字段 a,b,c当c字段等于某个值时 查询得到 a字段的值 其他情况就查询到b字段的值
下面有一个例子(报错):

SQL code
   select (case when ACTIONTYPE='更新' then (select GUISHUZUZHI from table_name where FORM_NO=192) else (select AFTERUPZUZHI from table_name where FORM_NO=192) end) as '更新后组织'  from table_name where FORM_NO=192

如果是这样写就可以实现(不报错):
SQL code
select (case when ACTIONTYPE='更新' then 1 else 0 end) as '更新后组织'  from table_name where FORM_NO=192


[解决办法]
探讨
我有一张表 表中有三个字段 a,b,c当c字段等于某个值时 查询得到 a字段的值 其他情况就查询到b字段的值
下面有一个例子(报错):
SQL code

select (case when ACTIONTYPE='更新' then (select GUISHUZUZHI from table_name where FORM_NO=192) else (select AFTERUP……

[解决办法]
SQL code
select (case when ACTIONTYPE='更新' then GUISHUZUZHI else AFTERUPZUZHI end) as '更新后组织'  from table_name where FORM_NO=192
[解决办法]
我有一张表 表中有三个字段 a,b,c当c字段等于某个值时 查询得到 a字段的值 其他情况就查询到b字段的值
下面有一个例子(报错):

--

select * from tb where (c = '某个值' and a = ...) or (c <> '某个值' and b = ... )
[解决办法]
select (case when a.GiftType='1' then (select GiftName from tablename where GiftId=a.GiftId)
else (select GiftId from tablename where GiftId=a.GiftId) end) aaa from tablename a where a.GiftId='001'

读书人网 >SQL Server

热点推荐