如果第一个表中的列中的值,SQL Server将从第二个表返回数据

时间:2017-11-09 10:12:13

标签: sql-server tsql

我有2张桌子

两个表我都有以下列

Type, Name, Description, Code

如果表1中的代码字段中的值> 0然后名称描述字段为空白,我需要从Table2获取名称描述表1和表2中的代码相等。

如何编写查询以返回一行,以便获得以下内容

T1Type, T1Name, T1Description, T1Code if code = 0

T1Type, T2Name, T2Description, T2Code if code > 0

道歉,我没有将其格式化为表格布局,但我不知道该怎么做。

TIA

1 个答案:

答案 0 :(得分:0)

您需要COALSECE您的值,以便它们取值为非空值。

COALSECE的工作方式是它查看第一列,如果是NULL,则它从第二列中获取值等.etc.etc。

Select t1.Type, COALESCE(t1.[Name],t2.[Name]) as Name, COALESCE(t1.[Description],t2.[Description]) as Description, t1.Code from Table1 T1
LEFT JOIN Table2 T2 ON T1.Code = T2.Code