Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server嵌套的select in from子句_Sql_Sql Server - Fatal编程技术网

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