0

如何使用 case 子句修改 join 子句;例如,如果 column1 为空,我希望表加入另一列,例如:

SELECT * FROM MYTABLE 
LEFT JOIN OTHERTABLE ON 
CASE WHEN MYTABLE.A IS NULL THEN MYTABLE.B = OTHERTABLE.A
ELSE MYTABLE.A IS NOT NULL THEN MYTABLE.A = OTHERTABLE.A

(完全弥补了,对不起语法错误:))

4

4 回答 4

4

试试这个:

SELECT * 
FROM MyTable M
LEFT JOIN OtherTable O ON(CASE WHEN M.A IS NULL THEN M.B ELSE M.A END) = O.A
于 2013-06-26T08:01:15.010 回答
1
SELECT * FROM MYTABLE 
LEFT JOIN OTHERTABLE ON COALESCE(MYTABLE.A, MYTABLE.B) = OTHERTABLE.A
于 2013-06-26T08:01:48.570 回答
1

只需尝试以下代码:

SELECT * FROM MYTABLE 
LEFT JOIN OTHERTABLE ON OTHERTABLE.A = isnull(MYTABLE.A,MYTABLE.B) 
于 2013-06-26T08:13:26.567 回答
0

您可以使用 isnull() 或 coalesce() 来检查空值。

于 2013-06-26T08:02:13.007 回答