【问题标题】:Modifying fields with multiIf使用 multiIf 修改字段
【发布时间】:2021-07-15 21:54:25
【问题描述】:

我正在尝试将一些缩短的数据修改为完整形式。为此,我正在使用以下查询。

WITH (SELECT DISTINCT platform FROM myTable) AS platform1
SELECT 
    multiIf(platform1 = "A", "ANDROID",
        platform1 = "W", "WINDOWS",
        platform1 = "I", "iOS"
    ) AS platform2

但是clikhouse抛出了一个错误:

DB::Exception: Scalar subquery returned more than one row.

如何解决这个问题?

【问题讨论】:

    标签: clickhouse


    【解决方案1】:

    试试这个查询:

    SELECT multiIf(
            platform1 = 'A', 'ANDROID',
            platform1 = 'W', 'WINDOWS',
            platform1 = 'I', 'iOS',
            'Unknown') AS platform2 
    FROM (SELECT DISTINCT platform FROM myTable)
    

    SELECT CASE platform1
             WHEN 'A' THEN 'ANDROID'
             WHEN 'W' THEN 'WINDOWS'
             WHEN 'I' THEN 'iOS'
             ELSE 'Unknown'
           END AS platform2 
    FROM (SELECT DISTINCT platform FROM myTable)
    

    【讨论】:

    • 令人惊讶的是第一个工作。我之前也很累,只是没有 else 语句。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多