SQLDEveloper中的CASE语句错误

时间:2013-03-19 18:24:03

标签: sql oracle oracle-sqldeveloper

我的案件陈述中出现错误,有人可以帮忙

Case
When length(cat) < 3
Then SubStr(cat,1,1) || '0' || SubStr(cat,-1,1)
Else cat
End cat1,hd0,
Case
When GEMS_CMN_HD1_ABREV.hd1 <>"00"
then " / "
**else HD1_ABR,null**
end,

看起来好像我的错误hse1_ABR,NULL

ORA-00905:缺少关键字 00905. 00000 - “缺少关键字” *原因:
*行动: 行错误:11列:18

2 个答案:

答案 0 :(得分:0)

替换&#34;用&#39;并删除*。将END置于null之前。使用()是为了清晰,这也是一个好习惯:

...(CASE When GEMS_CMN_HD1_ABREV.hd1 <>'00' then ' / ' else HD1_ABR end) As some_alias, null....

答案 1 :(得分:0)

如果我是对的,您尝试替换NULL,请尝试ISNULL

Case
When length(cat) < 3
Then SubStr(cat,1,1) || '0' || SubStr(cat,-1,1)
Else cat
End cat1,hd0,
Case
When GEMS_CMN_HD1_ABREV.hd1 <>"00"
then " / "
else isnull(HD1_ABR,'')
end