在使用' CASE'我遇到的问题,我从来没有听说过.
问题是这样的:我使用' CASE'statement in' SELECT'子句作为字段.调用具有int数据类型的列时,它是成功的; 但是,在调用varchar或datetime时,它不成功.
在错误结果中,它说我标记了临时字段,包括' CASE'语句int,但不是这样.请帮忙...
'STORED PROCEDURE'内容
CREATE PROC spRegistry_PersonsGetField
@ID int,
@Field varchar(100)
AS
SELECT CASE @Field
WHEN 'Name' THEN Name
WHEN 'Surname' THEN Surname
WHEN 'Username' THEN Username
WHEN 'Password' THEN Password
WHEN 'Status' THEN dbo.fnStatus(Status)
WHEN 'EMail' THEN EMail
WHEN 'Tel' THEN dbo.fnIsEmpty(Tel)
WHEN 'Address' THEN dbo.fnIsEmpty(Address)
WHEN 'City' THEN dbo.fnIsEmpty(City)
WHEN 'BirthDate' THEN dbo.fnDate(BirthDate)
WHEN 'Gender' THEN dbo.fnGender(Gender)
WHEN 'Lang' THEN Lang
ELSE NULL
END
AS …Run Code Online (Sandbox Code Playgroud) sql-server ×1