我编写了一个查询,该查询返回所需的结果,但我只希望返回“ iOS”或“ Android”,而不是完整的device_info
字符串。
SELECT
fans.device_info
FROM
fans
JOIN
rewards_codes_redemptions ON rewards_codes_redemptions.fan_id = fans.id
JOIN
rewards_codes ON rewards_codes.id = rewards_codes_redemptions.reward_code_id
WHERE
rewards_codes.account_id IN ('1580fb29-4c9e-4f6f-9d1c-c06e43a873fb',
'edf9984a-5000-44f5-b379-25bb34620c78')
ORDER BY
rewards_codes_redemptions.created_at
LIMIT
50
当前结果
iOS; 11.4.1; iPhone,
Android; 9; Pixel 2 XL
// ...
所需结果
iOS,
Android
最好为每个子查询执行子查询吗?
感谢您的帮助
答案 0 :(得分:0)
您要查找的是将CASE语句与LIKE结合使用。
最适合编写此类代码以获取原始结果并为所需结果集添加一列。
答案 1 :(得分:0)
我最终在CASE
子句中使用了SELECT
语句。
SELECT
CASE
WHEN fans.device_info LIKE '%iOS%' THEN 'iOS'
WHEN fans.device_info LIKE '%Android%' THEN 'Android'
END AS device
答案 2 :(得分:0)
我不确定您为什么要在fun = getprocess(fun)
之后加上逗号。因此,让我假设您只想在第一个分号之前输入字符串。
在这种情况下:
iOS