关于有left join 中使用 case 语句的问题
如,现有两表 A表(ID,TYPEID,NAME),B表(TYPEID,TYPENAME,YC)
我写了一语句如下,
select a.*,b.typename=case b.yc when 0 then b.typename else '隐藏 ' end
from A a left join B b on a.typeid=b.typeid
不明白的是为什么两表做 join时为什么case 语句会报错.有什么解决办法??
[解决办法]
select a.*,b.typename=case b.yc when 0 then b.typename else '隐藏 ' end
--b.typename应该是case when后列的别名,因此要将b.typename加单引号或改为你想要的列名
select a.*, '列名 '=case b.yc when 0 then b.typename else '隐藏 ' end
from A a left join B b on a.typeid=b.typeid
[解决办法]
--把b.typename=改為typename=
select a.*, typename=case b.yc when 0 then b.typename else '隐藏 ' end
from A a left join B b on a.typeid=b.typeid