如何通过多列比较过滤记录时如何知道哪个列匹配

时间:2013-05-20 02:39:13

标签: sql oracle11g

我有一张桌子" table1"像

NAME COL1 COL2 COL3 COL4
A    1    2    3    4

我想通过

过滤表格
"SELECT * FROM table1 where (COL1=1 OR COL2=1 OR COL3=1 OR COL4=1)"

我希望结果是

NAME COL_NAME
A    COL1

这可以通过SQL语句吗?

1 个答案:

答案 0 :(得分:6)

您不仅可以在选择列表中选择列,还可以使用表达式。例如,您可以使用:

SELECT
    NAME, -- More columns as needed
    CASE
    WHEN COL1=1 THEN 'COL1'
    WHEN COL2=1 THEN 'COL2'
    WHEN COL3=1 THEN 'COL3'
    WHEN COL4=1 THEN 'COL4'
    ELSE NULL END AS COL_MATCH
FROM table1 where (COL1=1 OR COL2=1 OR COL3=1 OR COL4=1)