表A (有5条记录如下),表B字段1
aaa
null
null
null
bbb语句:select isnull(字段1,(select top 1 某字段 from 表B)) from 表A请问这样写 子语句 (select top 1 某字段 from 表B) 会被执行3次?还是1次?
是否有必要将子语句提出来单独写求出结果。oracle的nvl也是一样需要么?
aaa
null
null
null
bbb语句:select isnull(字段1,(select top 1 某字段 from 表B)) from 表A请问这样写 子语句 (select top 1 某字段 from 表B) 会被执行3次?还是1次?
是否有必要将子语句提出来单独写求出结果。oracle的nvl也是一样需要么?
如果是仅仅执行1次,那我干嘛要拿出来写
而且如果表A要是没有null字段 我那样写1次都不会被执行吧。
拿出来反而要执行一次。最好是能从原理上。。
declare @s varchar(100);
select top 1 @s=某字段 from 表B;
select isnull(字段1,@s) from 表A;