Sql 使用同一列代替另一列
我有一个表,它有3个字段:Sql 使用同一列代替另一列,sql,sql-server,Sql,Sql Server,我有一个表,它有3个字段:id、name、reporting,其中有其他id: ID NAME REPORT ------------------- 1 asd 3 2 vv 1 3 dv 2 我希望在“报告”列中打印名称以代替ID: ID NAME REPORT ------------------- 1 asd dv 2 vv asd 3 dv vv 有人能帮忙吗?您需要
id、name、reporting
,其中有其他id:
ID NAME REPORT
-------------------
1 asd 3
2 vv 1
3 dv 2
我希望在“报告”列中打印名称以代替ID:
ID NAME REPORT
-------------------
1 asd dv
2 vv asd
3 dv vv
有人能帮忙吗?您需要使用报表id加入到包含报表名称的表中 大概是这样的:
Select a.Id,
a.Name,
b.Name as Report
From dbo.myTable a
Join dbo.myTable b on a.Report = b.Id
我应该补充一点,如果一些名称
没有相应的报告id,那么您可能希望使用左联接
而不是联接
,这样您仍然可以获得基表中的所有行
e、 g
看起来是同一张表包含了这些名字:)@Daniel Vassallo-谢谢你指出这一点-真奇怪。无论如何,我已经修改了我的答案。再次感谢,Barry@Jasmeet-为了反映这一点,我修改了我的回答。
Select a.Id,
a.Name,
IsNull(b.Name, 'No Report Defined') as Report
From dbo.myTable a
Left Join dbo.myTable b on a.Report = b.Id