如何将此usql转换为有效的SQL查询

时间:2018-10-17 18:23:46

标签: sql u-sql

(c.a = 'UNK' ? NULL : c.a)

我已将问题追溯到代码的案例结尾部分。我收到一个解析异常错误。我假设不支持{{1}}。我将如何转换呢?

2 个答案:

答案 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 NULLNULLIF(c.a, 'UNK') IS NOT NULL => c.a != 'UNK'