1

テーブルから列を選択する必要があります3が、列の各値がこの列の結果セットで一意である必要があります。

このクエリ:

SELECT DISTINCT TOP 10 a, b, c
FROM   x

10異なるセットを返します。

どうすればいいのですか?

4

3 に答える 3

4
WITH q AS
        (
        SELECT  a, b, с, ROW_NUMBER() OVER (ORDER BY a, b, c) AS rn
        FROM    mytable
        )
SELECT  TOP 10 a, b, c
FROM    q q1
WHERE   NOT EXISTS
        (
        SELECT  1
        FROM    q
        WHERE   q.rn < q1.rn
                AND q.a = q1.a
        )
        AND NOT EXISTS
        (
        SELECT  1
        FROM    q
        WHERE   q.rn < q1.rn
                AND q.b = q1.b
        )
        AND NOT EXISTS
        (
        SELECT  1
        FROM    q
        WHERE   q.rn < q1.rn
                AND q.c = q1.c
        )
于 2009-06-03T10:49:18.587 に答える
1

この質問はあなたが望むものを与えませんか?

于 2009-06-03T10:39:38.230 に答える
1

これが一発で可能かどうかはわかりません。これを行うには、テーブル変数を作成します。

DECLARE @Results TABLE
(
  a varchar(100),
  b varchar(100),
  c varchar(100)
)
INSERT @Results(a)
SELECT DISTINCT a FROM myTable

INSERT @Results(b)
SELECT DISTINCT b FROM myTable

INSERT @Results(c)
SELECT DISTINCT c FROM myTable

SELECT a,b,c FROM @Results
于 2009-06-03T10:41:22.003 に答える