SQL Server嵌套的select in from子句
对不起,不清楚。我当前的查询如下所示,除了某些条件外,运行良好SQL Server嵌套的select in from子句,sql,sql-server,Sql,Sql Server,对不起,不清楚。我当前的查询如下所示,除了某些条件外,运行良好 SELECT A.*, (SELECT .... from Emp where name = A.Name...... ) (SELECT .... from Emp where name = A.Name...... ) ........ FROM (SELECT DISTINCT column1, column2, column3 FROM xxx WHERE condition1) A 有时,下面的查询(即
SELECT A.*,
(SELECT .... from Emp where name = A.Name...... )
(SELECT .... from Emp where name = A.Name...... )
........
FROM (SELECT DISTINCT column1, column2, column3
FROM xxx
WHERE condition1) A
有时,下面的查询(即from子句中的查询)不会给出任何结果
SELECT DISTINCT column1, column2, column3
FROM xxx
WHERE condition1
当上面的子查询没有结果时,我不希望下面的查询由于连接而失败
(SELECT .... from Emp where name = A.Name...... )
(SELECT .... from Emp where name = A.Name...... )
当来自from cause的子查询未返回任何结果时,则显示Emp表本身中的所有内容,而不使用联接,即不使用name=A.name
当来自from cause的子查询返回结果时,将显示Emp表中带有联接的所有内容,即name=A.name
因此,was试图添加case语句,如下所示,以检查子查询是否给出任何结果。也许有更好的方法来实现这一点
这件事需要你的帮助
SELECT A.*,
CASE WHEN exists (select A.*) THEN
(SELECT .... from Emp where condition 1...... )
WHEN not exists (SELECT A.*) THEN
(SELECT .... from Emp where condition 2...... )
END Column_Dummy
FROM (SELECT DISTINCT column1, column2, column3
FROM xxx
WHERE condition1) A
正如我尝试在下面给出的建议,我得到的错误是无效的对象名“A”
SELECT A.*
CASE WHEN (SELECT COUNT(*) FROM A Where ....) = 0 THEN 'not result'
ELSE 'you have something there '
END
使用带有COUNT的查询*
不清楚。你能提供一些样本数据和期望的结果吗?你的查询有很大的错误。存在select A.*这需要一个完整的带有FROM和WHERE的“select”,而不仅仅是重用别名。查询中有四个FROM子句。你能说得更具体一点吗?谢谢你的回答,如果我给出这个,我得到的错误是无效的对象名“A”。从中选择计数*时,请选择一个*案例,其中….=0则不是结果,否则您有一些东西,这只是指导原则,您需要编写完整的查询。如何在我的示例中将子查询中的A用作我的示例中的表名?我不明白。我修改了我在上面添加的主要帖子,它可能比以前更具可读性。请在此方面需要帮助。是否添加来自??看起来你对sql不太了解,也许你应该从基础开始。
SELECT A.*
CASE WHEN (SELECT COUNT(*) FROM Table Where ....) = 0 THEN `not result`
ELSE `you have something there`
END