列の値が一意であるすべての行を選択します

PiotrL。

列n00、n01、n01、...、n99、すべて整数のテーブルTがあります。

このテーブルからすべての行を選択する必要があります。ここで、n00 ... n99の値は各行内で一意です。

列数が少ない場合の例:

columns: n0, n1, n2
row 1:   10, 20, 30
row 2:   34, 45, 56
row 3:   12, 13, 12
row 4:   31, 65, 90

行1、2、4を返すが、3は返さないselectステートメントが必要です(行3には一意でない値12が含まれているため、フィルターで除外します)。

効果的に私はこれを実装する必要があります:

select *
from t
where 
      n00 <> n01 and n00 <> n02 and ... and n00 <> n99
  and n01 <> n02 and n01 <> n03 and ... and n01 <> n99
  and n02 <> n03 and n02 <> n04 and ... and n02 <> n99
  ...
  and n97 <> n98 and n97 <> n99
  and n98 <> n99

...しかし、「よりスマートな」WHEREブロックを使用します。

ヒントは大歓迎です。

Tyron78

UNPIVOTも使用できます。

DECLARE @t TABLE(n0 int, n1 int, n2 int);
INSERT INTO @t VALUES (10, 20, 30), (34, 45, 56), (12, 13, 12), (31, 65, 90);

WITH cteRows AS(
  SELECT ROW_NUMBER() OVER (ORDER BY n0, n1, n2) rn, *
             FROM @t
),
cteUP AS(
  SELECT rn, rn_val
    FROM cteRows
  UNPIVOT(
    rn_val FOR rn_vals IN(n0, n1, n2)
  ) up
),
cteFilter AS(
  SELECT rn, rn_val, count(*) anz
    FROM cteUP
    GROUP BY rn, rn_val
    HAVING count(*) > 1
)
SELECT *
  FROM cteRows
  WHERE rn NOT IN (SELECT rn FROM cteFilter)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MySqlは、列の値が一意である場所を選択します

分類Dev

SQLServer-すべての列の1つが一意であるかどうかを選択します

分類Dev

列に特定の値を持つすべての行全体で一意の値を選択します

分類Dev

Mysql:特定の他の列値を指定して2つの列値の組み合わせが一意である行を選択する方法

分類Dev

列aとbの順列が一意であるすべての行を取得します

分類Dev

テーブルのすべての列からすべての一意の値を選択します

分類Dev

1列が一意である値が最も高い行を選択します

分類Dev

columnAに複数の一意のcolumnB値がある行を選択します

分類Dev

SQLは、別の列に少なくとも1つの特定の値を持つすべての一意でない行を選択します

分類Dev

一意のIDに対してすべての値が同じである行を取得する方法

分類Dev

MySQLの一意の列ごとに新しく入力された値をすべて選択します

分類Dev

mysql:テーブルから*を選択しますが、特定の列に一意の値があります

分類Dev

列Aから一意の値を選択し、列Bから一意の値を選択します

分類Dev

NSDictionary-一意である必要があるキーを選択して一意のレコードを取得します

分類Dev

LINQを使用して異なる列の一意の値を選択する

分類Dev

2つの列の値が同じであるすべての行を選択しますか?

分類Dev

列のすべての値が同じSQLServerである個別の行を選択します

分類Dev

1列が一意であり、別の列が一意の列に対する相対最小値の場合に行を取得します。

分類Dev

SAS-一意のIDが初めて発生する行を選択します(IDは2列にすることができます)

分類Dev

Rails:列から一意の値を選択します

分類Dev

リスト内のすべての値が一意であるかどうかをテストします

分類Dev

SQL-列のすべての値が同じである行を選択します

分類Dev

SQL-列のすべての値が同じである行を選択します

分類Dev

ある列で値が= 0で、別の列で一意のIDを持つ行のレコードを選択するSQLクエリ

分類Dev

最初の列が一意である行のみを印刷します

分類Dev

最初の列が一意である行のみを印刷します

分類Dev

すべての項目が配列リストで一意である場合はtrueを返します

分類Dev

foreachDataTable行は2番目の列で一意を選択します

分類Dev

列の値がNEVERxである行を選択します

Related 関連記事

  1. 1

    MySqlは、列の値が一意である場所を選択します

  2. 2

    SQLServer-すべての列の1つが一意であるかどうかを選択します

  3. 3

    列に特定の値を持つすべての行全体で一意の値を選択します

  4. 4

    Mysql:特定の他の列値を指定して2つの列値の組み合わせが一意である行を選択する方法

  5. 5

    列aとbの順列が一意であるすべての行を取得します

  6. 6

    テーブルのすべての列からすべての一意の値を選択します

  7. 7

    1列が一意である値が最も高い行を選択します

  8. 8

    columnAに複数の一意のcolumnB値がある行を選択します

  9. 9

    SQLは、別の列に少なくとも1つの特定の値を持つすべての一意でない行を選択します

  10. 10

    一意のIDに対してすべての値が同じである行を取得する方法

  11. 11

    MySQLの一意の列ごとに新しく入力された値をすべて選択します

  12. 12

    mysql:テーブルから*を選択しますが、特定の列に一意の値があります

  13. 13

    列Aから一意の値を選択し、列Bから一意の値を選択します

  14. 14

    NSDictionary-一意である必要があるキーを選択して一意のレコードを取得します

  15. 15

    LINQを使用して異なる列の一意の値を選択する

  16. 16

    2つの列の値が同じであるすべての行を選択しますか?

  17. 17

    列のすべての値が同じSQLServerである個別の行を選択します

  18. 18

    1列が一意であり、別の列が一意の列に対する相対最小値の場合に行を取得します。

  19. 19

    SAS-一意のIDが初めて発生する行を選択します(IDは2列にすることができます)

  20. 20

    Rails:列から一意の値を選択します

  21. 21

    リスト内のすべての値が一意であるかどうかをテストします

  22. 22

    SQL-列のすべての値が同じである行を選択します

  23. 23

    SQL-列のすべての値が同じである行を選択します

  24. 24

    ある列で値が= 0で、別の列で一意のIDを持つ行のレコードを選択するSQLクエリ

  25. 25

    最初の列が一意である行のみを印刷します

  26. 26

    最初の列が一意である行のみを印刷します

  27. 27

    すべての項目が配列リストで一意である場合はtrueを返します

  28. 28

    foreachDataTable行は2番目の列で一意を選択します

  29. 29

    列の値がNEVERxである行を選択します

ホットタグ

アーカイブ