解决方案 »

  1.   

    真的不行吗?SELECT CASE
    WHEN a IS NOT NULL THEN '群组1'
    WHEN b IS NOT NULL THEN '群组2'
    WHEN c IS NOT NULL THEN '群组3'
    WHEN d IS NOT NULL THEN '群组4'
    WHEN e IS NOT NULL THEN '群组5'
    WHEN f IS NOT NULL THEN '群组6'
    END
    FROM TB
      

  2.   


    不是,唉,不是这样的,我自己都说不上,每一条记录都要有值,有可能是b字段有值,就显示 群组2,如果是d字段有值,就显示群组4,而不是这样,如果a字段为null,就显示null了
      

  3.   

    没明白;WITH TB(a,b,c,d,e,f)AS(
    SELECT '1,2',CAST(NULL AS VARCHAR(20)),CAST(NULL AS VARCHAR(20)),CAST(NULL AS VARCHAR(20)),CAST(NULL AS VARCHAR(20)),CAST(NULL AS VARCHAR(20))
    UNION ALL SELECT NULL,'2,3',NULL,NULL,NULL,NULL
    UNION ALL SELECT NULL,NULL,'2,3',NULL,NULL,NULL
    UNION ALL SELECT NULL,NULL,NULL,'2,3',NULL,NULL
    UNION ALL SELECT NULL,NULL,NULL,NULL,'2,3',NULL
    UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,'2,3'
    )
    SELECT CASE
            WHEN a IS NOT NULL THEN '群组1'
            WHEN b IS NOT NULL THEN '群组2'
            WHEN c IS NOT NULL THEN '群组3'
            WHEN d IS NOT NULL THEN '群组4'
            WHEN e IS NOT NULL THEN '群组5'
            WHEN f IS NOT NULL THEN '群组6'
        END
    FROM TB你看下,是这样吗
      

  4.   


    -- 难道,LZ 是这个意思 ?
    SELECT CASE  WHEN a IS NOT NULL THEN '群组1' ELSE null END , 
           CASE  WHEN b IS NOT NULL THEN '群组2' ELSE null END ,
           CASE  WHEN c IS NOT NULL THEN '群组3' ELSE null END ,
           CASE  WHEN d IS NOT NULL THEN '群组4' ELSE null END ,
           CASE  WHEN e IS NOT NULL THEN '群组5' ELSE null END ,
           CASE  WHEN f IS NOT NULL THEN '群组6' ELSE null END 
        END
    FROM TB
      

  5.   

    -- 多了个 END , 换这个。
    SELECT CASE  WHEN a IS NOT NULL THEN '群组1' ELSE null END , 
           CASE  WHEN b IS NOT NULL THEN '群组2' ELSE null END ,
           CASE  WHEN c IS NOT NULL THEN '群组3' ELSE null END ,
           CASE  WHEN d IS NOT NULL THEN '群组4' ELSE null END ,
           CASE  WHEN e IS NOT NULL THEN '群组5' ELSE null END ,
           CASE  WHEN f IS NOT NULL THEN '群组6' ELSE null END 
    FROM TB
      

  6.   

    只有一个非空,你可以检测第一个不为空的列,可以这样 DECLARE @Var1 VARCHAR(50)=NULL,
     @var2 VARCHAR(40)=NULL,
      @var3 VARCHAR(40)='32342'SELECT COALESCE(@Var1,@var2,@var3)/*
    (无列名)
    32342
    */