ホームページ >データベース >mysql チュートリアル >一部の SQL データベースの GROUP BY 句でエイリアスを使用できないのはなぜですか?
SQL GROUP BY 句: エイリアスの制限
SQL GROUP BY
句でエイリアスを使用すると便利ですが、その制限を理解することが重要です。 次のクエリは、一般的な問題を示しています:
<code class="language-sql">SELECT itemName as ItemName, substring(itemName, 1,1) as FirstLetter, Count(itemName) FROM table1 GROUP BY itemName, FirstLetter</code>
FirstLetter
は 句で のみSELECT
で定義されたエイリアスであるため、このクエリは失敗します。 データベースは、GROUP BY
句の前に 句を処理します。したがって、SELECT
はまだ認識されていません。 正しいクエリには、元の式を使用する必要があります:FirstLetter
<code class="language-sql">GROUP BY itemName, substring(itemName, 1,1)</code>この制限は、標準 SQL の実行順序から生じます。
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
句で使用する前に定義する必要があります。GROUP BY
句内でエイリアスの使用が許可される場合があります。 ただし、コードを異なるデータベース システム間で実行する必要がある場合、この動作に依存すると移植性の問題が発生する可能性があります。 互換性を最大限に高めるには、GROUP BY
句でのエイリアスを避け、代わりに元の列名または式を使用することをお勧めします。GROUP BY
以上が一部の SQL データベースの GROUP BY 句でエイリアスを使用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。