我正在编写一个查询来检索翻译后的内容。我想要这样,如果没有给定语言 ID 的翻译,它会自动返回默认语言的翻译,ID 为 1。
select Translation.Title
,Translation.Summary
from Translation
where Translation.FkLanguageId = 3
-- If there is no LanguageId of 3, select the record with LanguageId of 1.
我正在使用 MS SQL,但我认为该理论不是特定于 DBMS 的。
提前致谢。
最佳答案
根据您对问题的措辞,这假定每个翻译只有 一个 行。如果每个 FkLanguageId 有多行并且我误解了,请告诉我们,查询当然会变得更复杂
select TOP 1
Translation.Title
,Translation.Summary
from
Translation
where
Translation.FkLanguageId IN (1, 3)
ORDER BY
FkLanguageId DESC
您将在另一个 RDBMS 中使用 LIMIT
关于基于条件的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4389329/