周末突然想到上周的问题
发现你的语句还是有点问题的
DECLARE @TA TABLE (A INT)
INSERT @TA SELECT 1
INSERT @TA SELECT 1
SELECT ISNULL((select a from @TA where a=1),0)AS 'A'
/*
A
-----------
訊息 512,層級 16,狀態 1,行 4
子查詢傳回不只 1 個值。這種狀況在子查詢之後有 =、!=、<、<=、>、>= 或是子查詢作為運算式使用時是不允許的。
*/
发现你的语句还是有点问题的
DECLARE @TA TABLE (A INT)
INSERT @TA SELECT 1
INSERT @TA SELECT 1
SELECT ISNULL((select a from @TA where a=1),0)AS 'A'
/*
A
-----------
訊息 512,層級 16,狀態 1,行 4
子查詢傳回不只 1 個值。這種狀況在子查詢之後有 =、!=、<、<=、>、>= 或是子查詢作為運算式使用時是不允許的。
*/
2行应该是不行的吧!
继续,学习。
-- INSERT @TA SELECT 1
-- INSERT @TA SELECT 1
-- INSERT @TA SELECT 2
INSERT @TA SELECT 3SELECT A FROM @TA WHERE EXISTS(SELECT 1 FROM @TA WHERE A =1 OR A=2)
UNION ALL
SELECT 0 FROM @TA WHERE NOT EXISTS(SELECT 1 FROM @TA WHERE A =1 OR A=2)
(所影响的行数为 1 行)A
-----------
0(所影响的行数为 1 行)这样也其实类似判断了,刚才那样想过DISTINCT 或TOP 来,显然不行,呵呵