我在将 MS Access 查询转换为 SQL 时遇到了一些问题:
SELECT id, col1, col2, col3
FROM table1
LEFT OUTER JOIN table2
ON table1.id = table2.id
LEFT OUTER JOIN table3
ON table1.id = table3.id
到目前为止一切顺利,但这是我卡住的(CASE)部分:
CASE WHEN table3.col3 IS NULL THEN table2.col3 AS col4 ELSE table3.col3 as col4
我知道上面的行不起作用,但希望它暗示了我想要完成的事情。谢谢!
更新:到目前为止,所有建议都导致“关键字'AS'附近的语法不正确”错误,所以也许我还缺少其他东西。在实际查询下方。问题是我们有两个表,都有 EUID 列。如果 dbo.EU_Admin3.EUID 不为 NULL,则在连接中优先。如果 dbo.EU_Admin3.EUID 为 NULL,请改用 dbo.EU_Admin2.EUID。希望澄清这一点。
SELECT dbo.AdminID.CountryID, dbo.AdminID.CountryName, dbo.AdminID.RegionID,
dbo.AdminID.[Region name], dbo.AdminID.DistrictID, dbo.AdminID.DistrictName,
dbo.AdminID.ADMIN3_ID, dbo.AdminID.ADMIN3
(CASE WHEN dbo.EU_Admin3.EUID IS NULL THEN dbo.EU_Admin2.EUID ELSE dbo.EU_Admin3.EUID END AS EUID)
FROM dbo.AdminID
LEFT OUTER JOIN dbo.EU_Admin2
ON dbo.AdminID.DistrictID = dbo.EU_Admin2.DistrictID
LEFT OUTER JOIN dbo.EU_Admin3
ON dbo.AdminID.ADMIN3_ID = dbo.EU_Admin3.ADMIN3_ID