如何编辑SELECT SQL返回的列值的字符串值结果

时间:2018-09-16 22:41:27

标签: sql postgresql

我编写了一个查询,该查询返回所需的结果,但我只希望返回“ 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

最好为每个子查询执行子查询吗?

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

您要查找的是将CASE语句与LIKE结合使用。

最适合编写此类代码以获取原始结果并为所需结果集添加一列。

情况: https://www.w3schools.com/sql/func_mysql_case.asp

赞: https://www.w3schools.com/sql/sql_like.asp

答案 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