sql语句子查询结果作为查询的范围,子查询无结果时怎么处理??
例如:
select * from (select Field from Table)
如果子查询查询的结果为
主查询的范围就是这个了,这样怎么处理无结果的情况发生?或者就是说在子查询无结果的时候怎么能让主查询继续执行下去?因为还有其他的查询与这个主查询一起在执行,它没有结果就导致整个所有的查询都无法继续了。
改子查询为 LEFT JOIN
主查询中没有表格去查询,是从子查询的结果中进行查询。
@1sa2sa: 将子查询的结果作为表进行 LEFT JOIN
@dudu left join的前提不得有个主表吗,主表就是子查询的结果。我还是有一些懵,举个例子吧。谢谢了。
@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 吗?查出来还是无结果?
@dudu: 无结果想让它的值为NULL。
@1sa2sa: 不需要赋值NULL,LEFT JOIN的记录如果不存在,字段值默认就是NULL
@dudu: 不赋值NULL,如果left join无结果,查出来的也是无结果。
@dudu:
我建了个表测试。
@1sa2sa: 提供一个参考 Return a value if no rows are found SQL,其他也帮不上了
@dudu: 谢谢你了。我再研究研究。非常感谢。
@dudu: 谢谢你。我是这样做的。
select ISNULL ((select uname from u),NULL) as uu
子查询没有结果集的时候就赋值为NULL了。
@1sa2sa: 谢谢分享解决方法