求解在sql-select语句中嵌套case-when语句的有关问题
求解在sql-select语句中嵌套case-when语句的问题
各大神,我想在sql-select语句中嵌套case-when语句,可是出现报错,求指教:
select
a.mark as 资产编号,
a.counttype as 资产组 = (case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end), a.name as 资产名称,
a.capitalspec as 规格型号,
a.capitalnum as 数量,
a.startprice as 价格,
a.SelectDate as 购置日期,
a.stateid as 资产状态,
b.lastname as 使用人,
c.departmentname as 使用部门,
a.attribute as 属性,
d.name as 资产类型
from
cptcapital a
left join HrmResource b on a.resourceid=b.id
inner join HrmDepartment c on a.departmentid=c.id
inner join CptCapitalType d on a.capitaltypeid=d.id
where a.counttype='1';
------解决思路----------------------
(case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end) as 资产组
这样就可以了
------解决思路----------------------
select
a.mark as 资产编号,
a.counttype as xxxx,资产组 = (case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end), a.name as 资产名称,
a.capitalspec as 规格型号,
a.capitalnum as 数量,
a.startprice as 价格,
a.SelectDate as 购置日期,
a.stateid as 资产状态,
b.lastname as 使用人,
c.departmentname as 使用部门,
a.attribute as 属性,
d.name as 资产类型
from
cptcapital a
left join HrmResource b on a.resourceid=b.id
inner join HrmDepartment c on a.departmentid=c.id
inner join CptCapitalType d on a.capitaltypeid=d.id
where a.counttype='1';
------解决思路----------------------
a.counttype as 资产组 = (case
这句, 那么將 as 改成逗号,即a.counttype不要别名 a.counttype , 资产组 = (case
要么写完整,a.counttype as [counttype别名], 资产组 = (case
------解决思路----------------------
改为:
或者
关键字 AS 可以省略。
各大神,我想在sql-select语句中嵌套case-when语句,可是出现报错,求指教:
select
a.mark as 资产编号,
a.counttype as 资产组 = (case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end), a.name as 资产名称,
a.capitalspec as 规格型号,
a.capitalnum as 数量,
a.startprice as 价格,
a.SelectDate as 购置日期,
a.stateid as 资产状态,
b.lastname as 使用人,
c.departmentname as 使用部门,
a.attribute as 属性,
d.name as 资产类型
from
cptcapital a
left join HrmResource b on a.resourceid=b.id
inner join HrmDepartment c on a.departmentid=c.id
inner join CptCapitalType d on a.capitaltypeid=d.id
where a.counttype='1';
------解决思路----------------------
(case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end) as 资产组
这样就可以了
------解决思路----------------------
select
a.mark as 资产编号,
a.counttype as xxxx,资产组 = (case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end), a.name as 资产名称,
a.capitalspec as 规格型号,
a.capitalnum as 数量,
a.startprice as 价格,
a.SelectDate as 购置日期,
a.stateid as 资产状态,
b.lastname as 使用人,
c.departmentname as 使用部门,
a.attribute as 属性,
d.name as 资产类型
from
cptcapital a
left join HrmResource b on a.resourceid=b.id
inner join HrmDepartment c on a.departmentid=c.id
inner join CptCapitalType d on a.capitaltypeid=d.id
where a.counttype='1';
------解决思路----------------------
a.counttype as 资产组 = (case
这句, 那么將 as 改成逗号,即a.counttype不要别名 a.counttype , 资产组 = (case
要么写完整,a.counttype as [counttype别名], 资产组 = (case
------解决思路----------------------
a.counttype as 资产组 = (case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end)
改为:
资产组 = (case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end)
或者
(case
when counttype='1' then '固定资产'
when counttype='2' then '低值易耗'
else 'null'
end) as 资产组
关键字 AS 可以省略。