将 Decode Substr Oracle 查询转换为 SQL 服务器

Converting Decode Substr Oracle query to SQL Server

我有一个 Oracle 查询,我正在尝试将其转换为 SQL Server 2012,但我发现很难看出我是如何实现同样的事情的。

有问题的 SQL 是:

SELECT decode( substr(a.Code, 1, 8), 'APP VARY', 'C', 'B') AS Value1
From tblA a

如果我理解正确,DECODE 是在 SQL 服务器中执行 IIF 的 ORACLE 方法。所以我想我可以使用类似的东西:

Select IIF(SUBSTRING(a.Code,1,8)='APP VARY','C','B') as Value1

这样看起来对吗?

有人知道我如何在 SQL 服务器中实现同样的事情吗?

如评论中所述,case 表达式似乎就是您想要的,例如

case substring(a.Code, 1, 8) when 'APP VARY' then 'C' else 'B' end

注意:并将 substr 替换为 substring

事实上,使用 like 应该完成同样的事情并且表现更好:

case when a.Code like 'APP VARY%' then 'C' else 'B' end