2015-10-27 24 views
0

,当我有这个疑问if语句不兼容的迁移从MySQL到SQL Server

select if(flow_peymankar_type.title = '' , 
    flows.title, flow_peymankar_type.title) as title, 
    flows.minRow, 
    [flow_peymankar_type].id, 
    [flows].[file], 
    [flows].isMandetory 
from flow_peymankar_type 
inner join flows 
    on flows.id = flow_peymankar_type.flowsId 
where [peymankarTypeId]=11  
order by flow_peymankar_type.code desc 

而且它在MySQL工作的罚款。

但现在我必须迁移到SQL Server 2008, 但这个查询是我的问题,我不知道如何改变它在sql server中工作。 PLZ帮助

+0

只要将'if'更改为'iif',它就可以工作。或者,使用'CASE'语句 – HoneyBadger

+0

iif没有工作!你能更具体的平方吗? – amir2h

+0

请看我的回答 – HoneyBadger

回答

2

不幸的是,IIF仅适用于SQL Server 2012及更高版本。改为使用CASE

SELECT  CASE 
       WHEN flow_peymankar_type.title = '' THEN flows.title 
       ELSE flow_peymankar_type.title 
      END AS title 
.... 
+0

干得好,其工作!非常感谢 – amir2h