SQL将两行合并为一个值

时间:2016-10-03 20:09:31

标签: sql sybase-ase

我需要组合两列的值并将值放入第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

4 个答案:

答案 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
虽然年龄和名字可能是'',但是把它称为钥匙似乎有风险