Oracle SQL-重新排列以前的数据透视表
我有这张桌子:Oracle SQL-重新排列以前的数据透视表,sql,oracle,Sql,Oracle,我有这张桌子: +-----------+---------------+------------------+ | ID | Rule 1 | Rule 2 | Rule 3 | +-----------+---------------+------------------+ | ID001 | PASSED | FAILED | PASSED | | ID002 | FAILED | FAILED | FAILED
+-----------+---------------+------------------+
| ID | Rule 1 | Rule 2 | Rule 3 |
+-----------+---------------+------------------+
| ID001 | PASSED | FAILED | PASSED |
| ID002 | FAILED | FAILED | FAILED |
| ID003 | FAILED | PASSED | PASSED |
+-----------+---------------+---------+--------+
我想将它转换为在每个规则下都有失败的ID
预期结果如下:
+-----------+---------+--------+
| Rule 1 | Rule 2 | Rule 3 |
+-----------+---------+--------+
| - | ID001 | - |
| ID002 | ID002 | ID002 |
| ID003 | - | - |
+-----------+---------+--------+
如何实现这一点?您可以使用条件语句:
SELECT CASE WHEN Rule1 = 'FAILED' THEN ID END AS Rule1,
CASE WHEN Rule2 = 'FAILED' THEN ID END AS Rule2,
CASE WHEN Rule3 = 'FAILED' THEN ID END AS Rule3
FROM t