周末突然想到上周的问题
发现你的语句还是有点问题的
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 個值。這種狀況在子查詢之後有 =、!=、<、<=、>、>= 或是子查詢作為運算式使用時是不允許的。
*/

解决方案 »

  1.   

    select a from @TA where a=1 
    2行应该是不行的吧!
    继续,学习。
      

  2.   

    SQL_SF MM看样子要是多值的话,只能利用判断分步进行了,学习,考虑周到
      

  3.   

    DECLARE @TA TABLE (A INT)
    -- 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 来,显然不行,呵呵