可以从单个列中修剪多个条件吗?

问题描述 投票:0回答:1

这里是新手。列中有一些车站名称末尾有额外的字符。我想在 PostgreSQL 中修剪它们。

例如,这可以删除末尾的“(Temp)”。

   SELECT
   station_name,
   RTRIM(station_name,' (Temp)')     
   FROM station_data

我也想删除“-SW”。

示例数据可能如下所示:

    north_station
    east_station
    south_station
    south_station (Temp)
    south_station - SW

理想的结果是这样的:

   north_station
   east_station
   south_station
   south_station
   south_station

我尝试过将 CASE WHEN 或 OR 与 RTRIM 一起使用,但设置/顺序错误或者可能无法结合使用?谢谢你。

sql postgresql trim
1个回答
0
投票

假设站名始终是单个单词,您可以使用以下正则表达式替换方法:

SELECT station_name, REGEXP_REPLACE(station_name, ' .*', '') AS station_name_out
FROM station_data;
© www.soinside.com 2019 - 2024. All rights reserved.