[解決済み] PostgresqlのWhere句でAliasカラムを使用する。
2023-05-12 07:16:17
質問
このようなクエリがあります。
SELECT
jobs.*,
(
CASE
WHEN lead_informations.state IS NOT NULL THEN lead_informations.state
ELSE 'NEW'
END
) AS lead_state
FROM
jobs
LEFT JOIN lead_informations ON
lead_informations.job_id = jobs.id
AND
lead_informations.mechanic_id = 3
WHERE
lead_state = 'NEW'
となり、以下のようなエラーが発生します。
PGError: ERROR: column "lead_state" does not exist
LINE 1: ...s.id AND lead_informations.mechanic_id = 3 WHERE (lead_state...
MySql ではこれは有効ですが、Postgresql ではどうやらそうではありません。私が調べたところでは、その理由は
SELECT
の部分よりも後に評価されるからです。
WHERE
部分よりも後に評価されます。この問題に対する一般的な回避策はあるのでしょうか?
どのように解決するのですか?
MySQL のサポートは、あなたが経験したように、非標準です。 正しい方法は、SELECT句で使用されているのと同じ式を再表示することです。
SELECT
jobs.*,
CASE
WHEN lead_informations.state IS NOT NULL THEN lead_informations.state
ELSE 'NEW'
END AS lead_state
FROM
jobs
LEFT JOIN lead_informations ON
lead_informations.job_id = jobs.id
AND
lead_informations.mechanic_id = 3
WHERE
lead_informations.state IS NULL
関連
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み] 最初の行への結合方法
-
[解決済み] SQL JOIN - WHERE句とON句の比較
-
[解決済み] PostgreSQLで重複して更新された場合の挿入?
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] 項目xにアクセスできるように文字列を分割するにはどうすればよいですか?
-
[解決済み】PostgresqlデータベースでNULLを許可しないカラムを追加するにはどうすればよいですか?
-
[解決済み] postgreSQL におけるゼロの左詰め
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQLの結合形式 - 入れ子になった内側join
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] SQLのSELECTでIF...THENを実行するにはどうすればよいですか?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] ある列の最大値を持つ行を取得する
-
[解決済み] SQL Server 2008を使用してIDENTITY_INSERTをオン/オフする方法は?
-
[解決済み] フラットテーブルをツリーにパースする最も効率的/エレガントな方法は何ですか?
-
[解決済み] Entity Framework VS LINQ to SQL VS ADO.NETでストアドプロシージャを使う?[クローズド]