WHERE 句で使用する SELECT SQL ステートメントで変数を宣言する

mmvsbg

次のスケルトンを持つ非常に長い SQL ステートメントがあります (SQL Server 2005 を使用)。

SELECT
    a.something AS Something,
    b.otherthing AS Otherthing,
    (SELECT another FROM ... WHERE...) AS Importantvariable,
....
FROM...
INNER JOIN...
INNER JOIN...
WHERE a.columnname = (SELECT another FROM ... WHERE...) ....

これImportantvariable自体が非常に長いクエリです。ただし、WHERE句や句など、同じクエリの他の部分で使用されますINNER JOIN私の質問は、どうすればその値を保存して、毎回クエリ全体を書く必要がなくなるかです。上記の例a.columnname = Importantvariableでは、クエリ全体の代わりに入力したいと思います。DECLARE宣言された変数で値を使用して保存しようとしましたが、次のエラーでそれを行うことができません。

A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operation.

もちろん、それは理にかなっていますが、私の言いたいことはデータ検索を実行することですImportantvariable. 何か案は?

シュヌゴ

を使用APPLYして、名前付き変数row-wise のようなものを作成できます値が 1 回計算され、セット全体で有効な場合 (定数のように)、CTE( のWITH前で始まる) を使用できますSELECT

以下では、APPLY使用して、すべての列のテーブル名を検索します。The.ImportantVariable列リストおよびWHERE-clause で使用できます

SELECT The.ImportantVariable
      ,c.*
FROM sys.columns AS c
OUTER APPLY(SELECT name FROM sys.objects AS o WHERE c.object_id=o.object_id) AS The(ImportantVariable)
WHERE The.ImportantVariable LIKE 'a%';

更新 CTE を比較して適用

これをチェックして!CTE によって提供される1 つの行にいくつかの定数があり、クエリに組み込んで名前付き定数として使用できます。CROSS JOIN

WITH SomeConstants AS
(
    SELECT 'I''m a constant value' AS Constant1 --might be a complex statement too!
           ,0 AS Constant2
)
SELECT The.ImportantVariable
      ,Constant1
      ,Constant2
      ,c.*
FROM SomeConstants
CROSS JOIN sys.columns AS c
OUTER APPLY(SELECT name FROM sys.objects AS o WHERE c.object_id=o.object_id) AS The(ImportantVariable)
WHERE The.ImportantVariable LIKE 'a%'

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

SELECTステートメントのWHERE句でphp変数を渡す方法は?

分類Dev

SQL where句でサブクエリを使用し、selectで値を使用する

分類Dev

SQL Server:where句のcaseステートメントで複数の変数を持つ変数を使用する方法

分類Dev

SELECT句とWHERE句で同じテーブルを使用する

分類Dev

SQLクエリの「WHERE」句の「SELECT」で「IF」の結果を使用する

分類Dev

selectステートメントに列を追加し、where句でirを使用する方法

分類Dev

WHERE句でSELECTステートメントを使用してSQLDELETEステートメントを作成するにはどうすればよいですか?

分類Dev

SQL Server:Where句でCaseステートメントを使用するとエラーが発生します

分類Dev

SQLのwhere句のcaseステートメントでinまたは=を使用する方法はありますか?

分類Dev

SQL2000のwhere句内でcaseステートメントを使用する方法

分類Dev

WHERE句に関数を含むSQL SELECTステートメントを記述するための同等のDjangoはありますか?

分類Dev

selectステートメントSQL内での変数の宣言と設定

分類Dev

WHERE句の一部であるMySQL SELECTステートメントの結果を抽出する

分類Dev

where句でcaseステートメントを使用する

分類Dev

テーブルをクロス結合し、クロス結合のwhere句でselectステートメントのフィールドを使用する方法

分類Dev

where句sqlのselectステートメント

分類Dev

SELECT / INTOステートメントでOUTPUT句を使用する方法

分類Dev

selectステートメントでtoWHERE句を使用する

分類Dev

selectステートメントでtoWHERE句を使用する

分類Dev

同じテーブルの異なる列で異なるwhere句を使用してSQLステートメントを結合する方法

分類Dev

where句内でselectステートメントを割り当てる

分類Dev

単一のSQLステートメントのwhere句で2つのLIKEを使用するにはどうすればよいですか?

分類Dev

Whereステートメントで変数を使用する

分類Dev

DB2 SQLでは、SELECTステートメントで変数を複数回使用するように設定することは可能ですか。

分類Dev

SQL Where句で複数のAnd条件を使用する方法

分類Dev

変数WHEREを使用したSELECTステートメント

分類Dev

where句を指定してselectステートメントを使用すると、SqlDataReaderが行を返さない

分類Dev

INSERT INTO ... SELECT ステートメントでの複数の WHERE 句の使用

分類Dev

where句SQLでエイリアスを使用する

Related 関連記事

  1. 1

    SELECTステートメントのWHERE句でphp変数を渡す方法は?

  2. 2

    SQL where句でサブクエリを使用し、selectで値を使用する

  3. 3

    SQL Server:where句のcaseステートメントで複数の変数を持つ変数を使用する方法

  4. 4

    SELECT句とWHERE句で同じテーブルを使用する

  5. 5

    SQLクエリの「WHERE」句の「SELECT」で「IF」の結果を使用する

  6. 6

    selectステートメントに列を追加し、where句でirを使用する方法

  7. 7

    WHERE句でSELECTステートメントを使用してSQLDELETEステートメントを作成するにはどうすればよいですか?

  8. 8

    SQL Server:Where句でCaseステートメントを使用するとエラーが発生します

  9. 9

    SQLのwhere句のcaseステートメントでinまたは=を使用する方法はありますか?

  10. 10

    SQL2000のwhere句内でcaseステートメントを使用する方法

  11. 11

    WHERE句に関数を含むSQL SELECTステートメントを記述するための同等のDjangoはありますか?

  12. 12

    selectステートメントSQL内での変数の宣言と設定

  13. 13

    WHERE句の一部であるMySQL SELECTステートメントの結果を抽出する

  14. 14

    where句でcaseステートメントを使用する

  15. 15

    テーブルをクロス結合し、クロス結合のwhere句でselectステートメントのフィールドを使用する方法

  16. 16

    where句sqlのselectステートメント

  17. 17

    SELECT / INTOステートメントでOUTPUT句を使用する方法

  18. 18

    selectステートメントでtoWHERE句を使用する

  19. 19

    selectステートメントでtoWHERE句を使用する

  20. 20

    同じテーブルの異なる列で異なるwhere句を使用してSQLステートメントを結合する方法

  21. 21

    where句内でselectステートメントを割り当てる

  22. 22

    単一のSQLステートメントのwhere句で2つのLIKEを使用するにはどうすればよいですか?

  23. 23

    Whereステートメントで変数を使用する

  24. 24

    DB2 SQLでは、SELECTステートメントで変数を複数回使用するように設定することは可能ですか。

  25. 25

    SQL Where句で複数のAnd条件を使用する方法

  26. 26

    変数WHEREを使用したSELECTステートメント

  27. 27

    where句を指定してselectステートメントを使用すると、SqlDataReaderが行を返さない

  28. 28

    INSERT INTO ... SELECT ステートメントでの複数の WHERE 句の使用

  29. 29

    where句SQLでエイリアスを使用する

ホットタグ

アーカイブ