Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用同一列代替另一列_Sql_Sql Server - Fatal编程技术网

Sql 使用同一列代替另一列

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 有人能帮忙吗?您需要

我有一个表,它有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加入到包含报表名称的表中

大概是这样的:

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