我需要一个SQL查询来处理复杂的SELECT。假设如下表:SQL查询从3个选项中选择,并根据列值从其他表中选择
Table 1: Table 2: name | email | callingcardid id | name | email -------|------------|-------------- ---|--------|---------------- first | [email protected] | null 1 | second | [email protected] second | | 1 third | | null
输出应该是:
name | email -------|----------- first | [email protected] second | [email protected] third | -
查询应该是这样的
SELECT table1.name, COALESCE(NULLIF(table1.email, ''),
CASE WHEN table1.callingcardid != NULL
THEN (SELECT table2.email WHERE id = table1.callingcardid) ELSE '-' END) "email"
语法显然是错误的,因为我不能得到它工作。还有一些其他列的连接来自其他表,但除此之外它可以工作。 CASE
条款是问题制造者。
数据库是Microsoft SQL Server 2008(或2012)。
哪里是你的加入呢?。你能否提供完整的SQL查询? –
否FROM子句? – jarlh