我有下表,名为 Fruits。
ID English Spanish German
1 Apple Applice Apple-
2 Orange -- --
如果程序通过 1 和英语,我必须返回 'Apple'。我怎么能为此编写 sql 查询?谢谢。
最佳答案
select
ID,
case @Lang
when 'English' then English
when 'Spanish' then Spanish
end as Name
from Fruits
where ID = @ID;
或者,如果您有多个列可供选择,您可以使用 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
关于sql - 从多列查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18247431/