Преобразование запроса Decode Substr Oracle в SQL Server - PullRequest
0 голосов
/ 18 июня 2020

У меня есть запрос Oracle, который я пытаюсь преобразовать в SQL Server 2012, и мне трудно понять, как я достиг того же.

Рассматриваемый SQL :

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

Если я правильно понимаю, DECODE - это ORACLE способ выполнения IIF на SQL сервере. Итак, я думаю, что могу использовать что-то вроде:

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

Это выглядит правильно?

У кого-нибудь есть идея, как я могу добиться того же на SQL сервере?

1 Ответ

1 голос
/ 18 июня 2020

Как отмечено в комментариях, может показаться, что выражение case - это то, что вы хотите, например,

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

Примечание: и замените substr на substring.

Фактически, следующее, использование like должно дать sh то же самое и работать лучше:

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