请教各位高手:
数据库中有四列,第一列是“检测指标”,第二列是A,第三列是B,第四列是C。第一列“检测指标”的值是A,B,C的组合,即可能是A,B,C也可能是A,B也可能是B,C。现在我想通过一条语句,取出检测指标中的项对应的值。比如“检测指标”列的值是“A,B"(AB之间有逗号),想要的结果是有三列,分别是:检测指标 A B。
数据库中有四列,第一列是“检测指标”,第二列是A,第三列是B,第四列是C。第一列“检测指标”的值是A,B,C的组合,即可能是A,B,C也可能是A,B也可能是B,C。现在我想通过一条语句,取出检测指标中的项对应的值。比如“检测指标”列的值是“A,B"(AB之间有逗号),想要的结果是有三列,分别是:检测指标 A B。
A 10
A,B 10 20
B,C 12 30
A,B,C 5 10 15
--根据你给的数据我分析你的表中应该还有一列主键,否则无法区分如第一条数据和第二条数据中的10 属于哪一个jczbWITH T AS(
SELECT 1 ID,'A' JCZB,10 A,NULL B,NULL C FROM DUAL UNION ALL
SELECT 2 ID,'A,B' JCZB,10 A,20 B,NULL C FROM DUAL UNION ALL
SELECT 3 ID,'B,C' JCZB,NULL A,12 B,30 C FROM DUAL UNION ALL
SELECT 4 ID,'A,B,C' JCZB,5 A,15 B,20 C FROM DUAL
)SELECT ID,JCZB,A AS VALUE_,'A' AS ANS FROM T WHERE A IS NOT NULL
UNION
SELECT ID,JCZB,B AS VALUE_,'B' AS ANS FROM T WHERE B IS NOT NULL
UNION
SELECT ID,JCZB,C AS VALUE_,'C' AS ANS FROM T WHERE C IS NOT NULL
;