我有下表名为Fruits.
ID English Spanish German
1 Apple Applice Apple-
2 Orange -- --
Run Code Online (Sandbox Code Playgroud)
如果程序通过1和英语,我必须返回'Apple'.我怎么能写那个sql查询?谢谢.
select
ID,
case @Lang
when 'English' then English
when 'Spanish' then Spanish
end as Name
from Fruits
where ID = @ID;
Run Code Online (Sandbox Code Playgroud)
或者,如果您有多个列可供选择,您可以使用apply,这样您就不必编写多个case语句
select
F.ID,
N.Name,
N.Name_Full
from Fruits as F
outer apply (values
('English', F.English, F.English_Full),
('Spanish', F.Spanish, F.Spanish_Full)
) as N(lang, Name, Name_Full)
where F.ID = @ID and N.lang = @lang
Run Code Online (Sandbox Code Playgroud)