使用 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)
我正在尝试将一些缩短的数据修改为完整形式。为此,我使用以下查询。
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)