真的不行吗?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
没明白;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你看下,是这样吗
-- 难道,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
-- 多了个 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
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
不是,唉,不是这样的,我自己都说不上,每一条记录都要有值,有可能是b字段有值,就显示 群组2,如果是d字段有值,就显示群组4,而不是这样,如果a字段为null,就显示null了
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你看下,是这样吗
-- 难道,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
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
@var2 VARCHAR(40)=NULL,
@var3 VARCHAR(40)='32342'SELECT COALESCE(@Var1,@var2,@var3)/*
(无列名)
32342
*/