以下のテーブル構造があり、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'.
助けてくれてありがとう。