我想在 SQL BDS 中使用派生列,并在派生列中执行以下操作:
1) 如果源列包含 NULL,则将其替换为“未知”
2)如果有值,则将其替换为给定的字符串。
到目前为止,我想出了这个,但我不熟悉这些表达式的语法,而且我不断收到错误:
ISNULL(Source) ? "Unknown" : REPLACE("m", "m", "Pop memories" ), REPLACE("h", "h", "Pop hits" ), REPLACE("a", "a", "Pop annual" ), REPLACE("y", "y", "Yearbook" ), REPLACE("bs", "bs", "Bestsellers" )
我很确定问题在于每次替换之间的逗号,但我不知道还能使用什么。有什么建议么?
编辑:
好的,我解决了。显然你必须嵌套 REPLACES 才能让它们像这样工作:
ISNULL(Source) ? "Unknown" : REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(Source, "bs", "Bestsellers" ), "m", "Pop memories" ), "h", "Pop hits" ) , "a", "Pop annual" ), "y", "Yearbook" )