0

私はそのようなテーブルを持っています

custno, type, color
A1234, B, Red
A1234, C, Blue
A1277, B, Red
A1288, A, Black
A1288, B, Red
A1289, A, Black

一度だけ見つかった一意のレコード A1277 と A1289 のみを取得する必要があります。

4

3 に答える 3

2

これcustNOにより、結果リストにが表示されます。

SELECT  custNo
FROM    tableName
GROUP   BY custNO
HAVING  COUNT(*) = 1

しかし、行全体を取得したい場合は、

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT  custNo
            FROM    tableName
            GROUP   BY custNO
            HAVING  COUNT(*) = 1
        ) b ON a.custNo = b.custNo
于 2013-03-12T15:07:01.733 に答える
1
SELECT custno
FROM yourTable
GROUP BY custno
HAVING COUNT(*) = 1

フィドルの例

于 2013-03-12T15:07:10.717 に答える
0

これにより、コストのかかる結合操作を防ぐことができるため、これを試してください--

SELECT custno,type,color FROM ( SELECT custno, type, color, COUNT(custno) OVER(PARTITION BY custno) CNT FROM tableName )TMP WHERE CNT=1

于 2013-03-15T07:25:37.073 に答える