2015-02-11 97 views
1

我只想问一下在SQL Server 2014 Express中使用IF语句的正确方法是什么?我有这个代码,但没有运气,它不工作。SQL Server Express IF声明

select 
    field1, 
    field2, 
    field3, 
    field4, 
    if(field5 = 'value1', field5, 
    if(field5 = 'value2', field5, 
    if(field5 = 'value3', field5, 
    if(field5 = 'value4', field5, field6)))) 
from 
    table1 

任何帮助将不胜感激。提前致谢。

+0

看来你需要['IIF() '](https://msdn.microsoft.com/en-us/library/hh213574.aspx)函数而不是'if'语句。 – 2015-02-11 03:49:56

回答

3

标准SQL语法IFCASE WHEN THEN END,例如:

SELECT field1, 
    CASE field5 
    WHEN 'value1' THEN field5 
    WHEN 'value2' THEN field4 
    ELSE field3 
    END 
FROM table1 

或者

SELECT field1, 
    CASE WHEN field5='value1' THEN field5 ELSE field4 END 
FROM table1 

ELSE部分是可选..

+0

感谢@Kokizzu和simo.379209的即时响应,无论您的建议如何工作。非常感谢! – MrCley 2015-02-11 03:57:04

+1

对不起,删除了我的评论,因为我认为我的语法错了。无论如何,现在我更有信心。 @Cleyventh有4个字段,都返回field5,所以你可以使用'CASE WHEN field5'('value1','value2','value3','value4')THEN field5 ELSE field6 END' – 2015-02-11 04:24:11

+1

@ simo.379209 does CASE WHEN语句可以嵌套。例如CASE WHEN在CASE WHEN语句中。谢谢! – MrCley 2015-02-11 06:54:16