我正在尝试开发一个查询,在该查询中,单列的值分为两个或更多单独的列,以反映特定的id是否具有每个不同的值。
例如,我有一个这样的表:
------------ | id | Val | |----|-----| | 1 | A | | 1 | B | | 2 | A | | 3 | A | | 4 | B | | 5 | A | ------------
该查询将产生一个如下表:
---------------------- | id | Val_1 | Val_2 | |----|-------|-------| | 1 | A | B | | 2 | A | | | 3 | A | | | 4 | | B | | 5 | A | | ----------------------
具体来说,我希望此查询仅显示具有缺失值的ID(即ID“ 1”将被从表中剔除)。
到目前为止,我已经通过使用一个内部内部联接进行了尝试,但是我无法找到用于产生此结果的select WHERE子句。
有什么建议?
谢谢!
更新:筛选出具有Val_1和Val_2的列
SELECT * FROM ( SELECT id, MAX(CASE WHEN val='A' THEN 'A' END) as Val_1, MAX(CASE WHEN val='B' THEN 'B' END) as Val_2 FROM table1 GROUP BY id )a WHERE Val_1 IS NULL OR Val_2 IS NULL;