我有一个Table1
包含 5 列的表 ( ),每个结果都显示一个时区 ( TZID
)的 ID 。在单独的表 ( Table2
) 中是这些 ID 的列表,以及它们的相应名称。我需要加入它们,以便为每个列结果显示相应的名称。但我似乎只能弄清楚如何加入 1 列的结果。例如:
表 1 与表 2 连接
在这里,我加入Column3
了TZID
from table 2
。但是如果Column3
等于零,Column 1
或者2
不是,我需要TZID
fromtable2
返回对应的name
from Table2
。
目前我有以下几点:
SELECT
Column1
,Column2
,Column3
,Table2.TZID as 'TZID from Table2'
,Table2.[DESCRIPT] as 'Name from Table2'
FROM Table1
left outer join Table2 on Table2.TZID=Table1.Column3
我尝试使用 REPLACE,是否可以用另一个表的结果替换?就像是
REPLACE(Column1, Table2.TZID, Table2.[DESCRIPT]) AS 'Column1 Mask'
有没有办法真正做到这一点?
我想你想加入优先级,如果不是 0,首先加入 Column3。如果 Column3 是 0,然后加入 Column1。如果第 1 列也是 0,则与 Column2 连接,对吗?
如果这是正确的,那么您需要这样的 sql 查询:
SELECT
Column1
,Column2
,Column3
,Table2.TZID as 'TZID from Table2'
,Table2.NAME as 'Name from Table2'
FROM Table1
LEFT OUTER join Table2 on Table2.TZID =
CASE
WHEN Table1.Column3 <> 0
THEN Table1.Column3
WHEN Table1.Column1 <> 0
THEN Table1.Column1
WHEN Table1.Column2 <> 0
THEN Table1.Column2
END
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句