テーブルから列を選択する必要があります3
が、列の各値がこの列の結果セットで一意である必要があります。
このクエリ:
SELECT DISTINCT TOP 10 a, b, c
FROM x
10
異なるセットを返します。
どうすればいいのですか?
テーブルから列を選択する必要があります3
が、列の各値がこの列の結果セットで一意である必要があります。
このクエリ:
SELECT DISTINCT TOP 10 a, b, c
FROM x
10
異なるセットを返します。
どうすればいいのですか?
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
)
この質問はあなたが望むものを与えませんか?
これが一発で可能かどうかはわかりません。これを行うには、テーブル変数を作成します。
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