-2
我无法返回正确的信息与我的select语句DB2 CASE语句和CONCAT
表:
prefix | suffix | alternate
------ | ------ | --------
A | 12345 | 0
B | 67890 | 0
C | 0 | 555555
这里是我的查询
SELECT
CASE WHEN prefix = 'C' THEN alternate
ELSE CONCAT(prefix, suffix) END as Result
FROM table
我想什么看到结果:
Result
------
A12345
B67890
555555
我居然看到:
555555
,如果我用这个选择
SELECT
CASE WHEN prefix = 'C' THEN alternate
ELSE suffix END as Result
FROM table
我得到的行数我想但不正确的列值取出CONCAT。我在前两行中缺少前缀。
结果
12345
67890
555555
思考我如何能做到这一点,而无需复制代码与工会?
Select concat(prefix,suffix) as result from table
union
select alternate as result from table
你可以试试:'选择前缀|| case prefix ='C'then then combined suffix end as result from table'? – zedfoxus
这个查询真的没有办法从三行到一行。你确定这是输出吗? – shawnt00
这是我得到的实际输出。表列名称,结果被改变以保护无辜当然。我只是不明白为什么它不起作用。 CASE允许您根据WHEN和CONCAT允许将多个列合并为一个的内容来显示不同的列。我也改变了我的例子有点清楚。对于每一行,如果前缀是“C”,我想返回组合列中的内容。如果它不是C,我想返回CONCAT的前缀和后缀。这不可能吗? – Joel