首页 新闻 搜索 专区 学院

sql语句子查询结果作为查询的范围,子查询无结果时怎么处理

0
悬赏园豆:5 [已解决问题] 解决于 2018-05-11 10:57

sql语句子查询结果作为查询的范围,子查询无结果时怎么处理??
例如:

select * from (select Field from Table)
如果子查询查询的结果为
主查询的范围就是这个了,这样怎么处理无结果的情况发生?或者就是说在子查询无结果的时候怎么能让主查询继续执行下去?因为还有其他的查询与这个主查询一起在执行,它没有结果就导致整个所有的查询都无法继续了。

1sa2sa的主页 1sa2sa | 菜鸟二级 | 园豆:289
提问于:2018-05-10 17:14
< >
分享
最佳答案
0

改子查询为 LEFT JOIN

收获园豆:5
dudu | 高人七级 |园豆:37042 | 2018-05-10 17:41

主查询中没有表格去查询,是从子查询的结果中进行查询。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-10 17:51

@1sa2sa: 将子查询的结果作为表进行 LEFT JOIN

dudu | 园豆:37042 (高人七级) | 2018-05-10 18:10

@dudu left join的前提不得有个主表吗,主表就是子查询的结果。我还是有一些懵,举个例子吧。谢谢了。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-10 18:20

@dudu: 

select Field = NULL from
(SELECT [a1] FROM TABLE_A ) as temp_A
left join
(SELECT [a1] FROM TABLE_A ) as temp_B
on temp_A.a1=temp_B.a1


直接让主查询的字段赋值为NULL,子查询的结果这样使用left join 吗?查出来还是无结果?

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-11 09:17

@dudu: 无结果想让它的值为NULL。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-11 09:17

@1sa2sa: 不需要赋值NULL,LEFT JOIN的记录如果不存在,字段值默认就是NULL

dudu | 园豆:37042 (高人七级) | 2018-05-11 09:55

@dudu: 不赋值NULL,如果left join无结果,查出来的也是无结果。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-11 09:56

@dudu: 

我建了个表测试。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-11 10:05

@1sa2sa: 提供一个参考 Return a value if no rows are found SQL,其他也帮不上了

dudu | 园豆:37042 (高人七级) | 2018-05-11 10:18

@dudu: 谢谢你了。我再研究研究。非常感谢。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-11 10:19

@dudu: 谢谢你。我是这样做的。
select ISNULL ((select uname from u),NULL) as uu

子查询没有结果集的时候就赋值为NULL了。

1sa2sa | 园豆:289 (菜鸟二级) | 2018-05-11 10:57

@1sa2sa: 谢谢分享解决方法

dudu | 园豆:37042 (高人七级) | 2018-05-11 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册