带有if-else条件的SELECT语句

时间:2012-12-13 10:23:54

标签: sql sql-server

我想修改sql语句,这非常简单,如

SELECT id
FROM page
WHERE name = "Test"

现在我想改变它像

SELECT id
FROM page
WHERE name = "Test"
AND if idLanguage != idlanguage then idParent = idpage

更好的方法是什么?

谢谢

3 个答案:

答案 0 :(得分:3)

SELECT id
FROM page
WHERE name = "Test"
AND (idLanguage = idlanguage OR idParent = idpage)

更好,因为它是有效的SQL语法。

答案 1 :(得分:1)

使用案例陈述怎么样?请尝试:

SELECT id
FROM page
WHERE name = "Test" AND 
idParent = (CASE WHEN idLanguage <> idlanguage THEN idpage ELSE idParent END)

答案 2 :(得分:0)

如果您真的想在数据库中设置idParent的值,那么在选择之前需要UPDATE语句。

UPDATE page SET idParent = idpage
WHERE name = "Test"
    AND idLanguage != idlanguage;

SELECT id FROM page
WHERE name = "Test"