(c.a = 'UNK' ? NULL : c.a)
我已将问题追溯到代码的案例结尾部分。我收到一个解析异常错误。我假设不支持{{1}}。我将如何转换呢?
答案 0 :(得分:2)
如果我正确理解逻辑,则可以进行简单比较:
SELECT DISTINCT d.id AS id,
(CASE WHEN c.a <> 'UNK' THEN c.a
WHEN b.a <> 'UNK' THEN b.a
WHEN c.e <> 'UNK' THEN c.e
ELSE b.e
END) AS output,
FROM . . .
NULL
未通过<>
比较,因此在语义上应该等效。
答案 1 :(得分:0)
是:
SELECT DISTINCT
d.id AS id,
CASE
WHEN c.a != 'UNK' THEN c.a
WHEN b.a != 'UNK' THEN b.a
WHEN c.e != 'UNK' THEN c.e
ELSE b.e
END AS output,
FROM db.table;
或者(c.a = 'UNK' ? NULL : c.a) IS NOT NULL
与NULLIF(c.a, 'UNK') IS NOT NULL
=> c.a != 'UNK'