使用 multiIf 修改字段

Modifying fields with multiIf

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

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.

怎么办?

试试这个查询:

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)