Sybase SQL select语句以按ID折叠和压缩行
我需要帮助使用Sybase构造SQL语句以折叠由ID、Name和DEPT三列链接的行。我有一个表Sybase SQL select语句以按ID折叠和压缩行,sql,sql-update,sybase,sql-insert,Sql,Sql Update,Sybase,Sql Insert,我需要帮助使用Sybase构造SQL语句以折叠由ID、Name和DEPT三列链接的行。我有一个表TABLE1: ID NAME DEPT CAT 1 ghi P 1 CV G 2 abc P 2 IT G 2 HC G 3 def P 3
TABLE1
:
ID NAME DEPT CAT
1 ghi P
1 CV G
2 abc P
2 IT G
2 HC G
3 def P
3 jkl P
3 ENT G
3 MC G
CAT列表示类别。P列表示人。G列表示组
ID
可以是个人(姓名)也可以是组(部门)
如果ID(1)与人员(名称)和组(部门)关联,则我希望将人员(名称)行更新为具有部门名称,然后删除组(部门)行。如果ID(2)与一个人(名称)和多个部门(组)关联,那么我希望该名称有两行。如果ID(3)包含两个不同的名称和两个不同的部门,则我希望每个名称和部门都有单独的行,如下所示:
以下是我想要的预期输出:
ID NAME DEPT CAT
1 ghi CV P
2 abc IT P
2 abc HC P
3 def ENT P
3 def MC P
3 jkl ENT P
3 jkl MC P
我想要一个SQL语句,它从
表1
返回上述行。有可能吗?这可能适合你
SELECT t1.ID, t1.NAME, t2.DEPT, t1.CAT
FROM TABLE1 AS t1
INNER JOIN TABLE1 AS t2 ON (t1.ID = t2.ID)
WHERE t2.DEPT IS NOT NULL AND t1.NAME IS NOT NULL
谢谢你的回复。我会试试这个方法。谢谢凯文。我能够着手解决这个问题。