以下のテーブル構造があり、select ステートメントで使用した関数を case キーワードを使用して順番に使用したいのですが、FullName が無効な列であるというエラーが発生しました。
CREATE TABLE STUDENTS
(
     ID INT IDENTITY(1, 1) ,
     FirstName VARCHAR(50) ,
     LastName VARCHAR(50)
)
テーブル STUDENTS にデータを挿入します
INSERT  INTO STUDENTS
VALUES  ( 'kamal', 'sharma' )
INSERT  INTO STUDENTS
VALUES  ( 'john', 'jack' )
INSERT  INTO STUDENTS
VALUES  ( 'Rahul', 'Thomson' )
このステートメントは機能しています
SELECT 
       ID
     , FirstName + ' ' + LastName AS FullName
FROM STUDENTS
ORDER BY FullName ASC
これが必要ですが、FullName が無効な列であると表示されます。
DECLARE @VAL INT  
SET @VAL = 1
SELECT ID
    ,FirstName + ' ' + LastName AS FullName
FROM STUDENTS
ORDER BY CASE 
        WHEN @VAL = 1
            THEN FullName
        END ASC
    ,CASE 
        WHEN @VAL = 2
            THEN FullName
        END DESC
Msg 207, Level 16, State 1, Line 10
Invalid column name 'FullName'.
Msg 207, Level 16, State 1, Line 14
Invalid column name 'FullName'.
助けてくれてありがとう。