1. ホーム
  2. sql

SQL ServerでエイリアスされたカラムにGROUP BYを実行するにはどうすればよいですか?

2023-11-30 11:16:43

質問

を実行しようとしています。 によるグループ アクションを実行しようとしていますが (以下の例)、適切な構文を決定できません。

SELECT       LastName + ', ' + FirstName AS 'FullName'
FROM         customers
GROUP BY     'FullName'

正しい文法は何ですか?

質問をさらに拡張すると(私は受け取った答えを予想していませんでした)、解決策はCASEされたエイリアスされた列にも適用されるのでしょうか?

SELECT       
    CASE
        WHEN LastName IS NULL THEN FirstName
        WHEN LastName IS NOT NULL THEN LastName + ', ' + FirstName
    END AS 'FullName'
FROM         customers
GROUP BY     
    LastName, FirstName

そしてその答えは、「はい、まだ適用されます」。

どのように解決するのですか?

エイリアスではなく、グループ化したい式を渡します。

SELECT       LastName + ', ' + FirstName AS 'FullName'
FROM         customers
GROUP BY      LastName + ', ' + FirstName