ColA ColB ColC ColD
data1 rata1 T Test1 data1 rata3 F Test2 data1 rata2 T Test1 data2 rata1 T Test1 data2 rata3 T Test1 data3 T Test1 T rata4 T Test1 data3 T Test1 data3 T Test1 rata3 T Test1 data2 rata1 T Test1 data2 rata3 T Test1 data3
有四列类型的Varchar。我想确定的是:
rata2 data1 T Test1
rata3 data2 T Test1
rata4 data3 T Test1在上面的查询中,当
rata3 data1 F Test2 发布于 2011-07-11 22:40:15
根本不明白你的问题。如果你说别的话,我会改正答案的。但就我所知你想要这样的东西?
编辑:--我创建了与您在DB中给我们的表相同的表。这个效果很好。试一试,告诉我它是否有效
SELECT COLUMNB,MAX(COLUMNA), MAX(ColumnC), MAX(COLUMND)
FROM DUMMY
WHERE ColumnC = 'T'
GROUP BY COLUMNB
HAVING SUM(CASE WHEN COLumnC = 'T' THEN 1 ELSE 0 END) <= 1
UNION ALL
SELECT *
FROM DUMMY
WHERE COLumnC = 'F'编辑2:,这个怎么样?
WITH B
AS(
SELECT A.COLUMNB, MAX(A.COLUMNA) AS COLUMNA, MAX(A.ColumnC) AS COLUMNC, MAX(A.COLUMND) AS COLUMND
FROM DUMMY A
GROUP BY A.COLUMNB
HAVING SUM(CASE WHEN A.COLumnC = 'T' THEN 1 ELSE 0 END) <= 1)
SELECT *
FROM B
UNION ALL
SELECT D.COLUMNB, D.ColumnA, D.ColumnC, D.ColumnD
FROM B, DUMMY D
WHERE B.ColumnB = D.COLUMNB
AND D.ColumnC = 'F'https://stackoverflow.com/questions/6657128
复制相似问题