【问题标题】:Looking for Solution or the Query [closed]寻找解决方案或查询[关闭]
【发布时间】:2023-01-23 00:10:23
【问题描述】:
- 表A
EmpID EmpName 工资
1 abc1 100
2 abc2 200
表B
EmpID EmpName 工资
1 abc1 100
3 abc3 300
连接表 A 和 B 以创建具有新列 Flag 的表 C。
标志:如果值来自 A,则为 'A'
Flag : 'B' 如果值来自 B
Flag : 'A,B' 如果值来自 A,B
表C
EmpID EmpName 工资标志
1 abc1 100 A,B
2 abc2 200 安
3 abc3 300 乙
查询问题
【问题讨论】:
标签:
mysql
regex
postgresql
sqlite
sql-server-2008
【解决方案1】:
从 TableA 中选择 a.EmpID,and.EmpName,a.Salary ,'A,B' 作为 Flag
内联表 b on a.EmpID =b.EmpID
联合所有
从中选择 EmpID、EmpName、Salary、Flag
(
从 TableA 中选择 a.EmpID,a.EmpName,a.Salary,'A' 作为 Flag
在 a.EmpID = b.EmpID 上左连接 TableB b
)only_a
EmpID 不在的地方(从 TableB 选择不同的 EmpID)
联合所有
从中选择 EmpID、EmpName、Salary、Flag
(
从 TableA a 中选择 b.EmpID,b.EmpName,b.Salary ,'B' 作为 Flag
在 a.EmpID = b.EmpID 上右连接 TableB b
)only_b
EmpID 不在的地方(从 TableA 选择不同的 EmpID)