Конвертировать SQL IIF в Redshift - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть скрипт сервера sql, который мне нужно преобразовать в Redshift

Вот часть кода, с которой у меня проблема

IIF(smf.channelid IS NULL, 0, 1) AS IsFeatureKey,
IIF(codeLabel.CslId > 0, 1, 0) AS IsCslCode,
IIF(codeLabel.LearnId > 0, 1, 0) AS IsLearnCode,
IIF(codeLabel.PMId > 0, 1, 0) AS IsPMCode,
IIF(codeLabel.UpSell > 0, 1, 0) AS IsUpSell

Как мне правильно конвертировать его в Redshift?

1 Ответ

0 голосов
/ 06 сентября 2018

IIF - это просто синтаксический сахар для выражения CASE (это поведение упоминается в документации). Ваш код идентичен:

CASE WHEN smf.channelid IS NULL THEN 0 ELSE 1 END AS IsFeatureKey,
CASE WHEN codeLabel.CslId > 0 THEN 1 ELSE 0 END AS IsCslCode,
CASE WHEN codeLabel.LearnId > 0 THEN 1 ELSE 0 END AS IsLearnCode,
CASE WHEN codeLabel.PMId > 0 THEN 1 ELSE 0 END AS IsPMCode,
CASE WHEN codeLabel.UpSell > 0 THEN 1 ELSE 0 END AS IsUpSell
...