Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Case-SQL语句中IFF的等价性_Sql_Sql Server - Fatal编程技术网

Case-SQL语句中IFF的等价性

Case-SQL语句中IFF的等价性,sql,sql-server,Sql,Sql Server,我正在尝试将access IFF查询转换为SQL Server查询 SELECT blah blah , IIf([stock]![supplier]=[pos]![supplier],"Preferred"," ") AS Preferrednew FROM blah blah 在access中,如果条件为true,则在名为Preferrednew的列中提供preferred值 我已将代码转换为 SELECT blah blah , CASE WHEN ([stock.suppl

我正在尝试将access IFF查询转换为SQL Server查询

SELECT blah blah ,
    IIf([stock]![supplier]=[pos]![supplier],"Preferred"," ") AS Preferrednew 
FROM blah blah
在access中,如果条件为true,则在名为Preferrednew的列中提供preferred值

我已将代码转换为

SELECT blah blah ,
 CASE WHEN ([stock.supplier] = [pos.supplier]), 'test', 'test2' AS [preferrednew]
FROM blah blah
但是我得到了错误

“,”附近的语法不正确

正确的格式是什么

SELECT blah blah ,
    CASE WHEN stock.supplier = pos.supplier THEN 'test'
    ELSE 'test2'
    END AS [preferrednew]
FROM blah blah

请记住,SQL Server 2012+支持

完美,谢谢。是的,我尝试了IIF,但我们是2012年之前的-当我们升级数据库时,案例仍然有效吗?@Emma case当然可以,IIF只是语法糖:)再次感谢您的快速帮助:)感谢您注意到自SQL Server以来支持
IIF
2012@Emma如果这篇文章有帮助,请考虑标记为答案;