1

我想使用 CASE 语句有条件地检查参数,if parameter is an empty string I want to return Nil if not then string 'test'但这不起作用。我也不想使用 COALESCE

select TEST=CASE '' WHEN '' THEN 'Nil' ELSE 'Test' END,current_timestamp from sysibm.sysdummy1;

我收到一个错误

SQL 状态:42601 供应商代码:-104 消息:[SQL0104] 令牌 = 无效。有效令牌: + - AS 。原因 。. . . . : 在 token = 处检测到语法错误。令牌 = 不是有效令牌。有效令牌的部分列表是 + - AS 。此列表假定该语句在令牌之前是正确的。错误可能出现在语句的前面,但语句的语法在此之前似乎是有效的。恢复 。. . :执行以下一项或多项操作,然后再次尝试请求: -- 验证令牌 = 区域中的 SQL 语句。更正陈述。错误可能是缺少逗号或引号,可能是拼写错误的单词,也可能与从句的顺序有关。-- 如果错误标记是 ,请更正 SQL 语句,因为它没有以有效子句结尾。

4

2 回答 2

1
select CASE '' WHEN '' THEN 'Nil' ELSE 'Test' END as TEST,current_timestamp from sysibm.sysdummy1;

用预期的列替换一些东西。


有关更多信息,请查看

于 2012-04-26T09:36:45.107 回答
0

您的案例语法不正确,正确的是,

select TEST=CASE <fieldname> WHEN '' THEN 'Nil' ELSE 'Test' END,current_timestamp from sysibm.sysdummy1;
于 2012-04-26T09:37:55.157 回答