我需要组合两列的值并将值放入第3列。例如, 我有一张这样的桌子:
Name Age Key
Joe 4
Mike 10
Larry 20
我想要一个输出,其中键是name和age列的组合。
Name Age Key
Joe 4 Joe/4
Mike 10 Mike/10
Larry 20 Larry/20
如果Name不是空值,我只需要组合到Key字段。结合两者之间。
我尝试过GROUP_CONCAT没有成功,我也尝试过concat但没有成功......
select Name, Age, (CASE WHEN table.Name IS NULL OR table.Name = '' then else concat(table.Name, '/', table.Age)) as Key from table
答案 0 :(得分:3)
您的查询中有两个错误
SELECT Name,
Age,
( CASE
WHEN TABLE.Name IS NULL
OR TABLE.Name = '' THEN '' -- Missing then result
ELSE Concat(TABLE.Name, '/', TABLE.Age)
END ) AS KEY --END missing
FROM TABLE
答案 1 :(得分:2)
我认为使用coalesce处理nulls更简单
coalesce(Name + '/' + Age,'')
答案 2 :(得分:1)
Select Name, Age, case when Name is not null then Name + "/" + Age end as Key from ...
答案 3 :(得分:1)
Coalesce也会在这里工作......
select Name
, Age
, concat(coalesce(table.Name,''), '/', coalesce(table.Age,''))) as Key
from table
虽然年龄和名字可能是'',但是把它称为钥匙似乎有风险