提问人:Mycode 提问时间:8/3/2022 最后编辑:Mycode 更新时间:8/3/2022 访问量:52
使用 postgresql 删除表中整列中的部分数据
Removing parts of data in whole column in table using postgresql
问:
在我的数据中,我有如下所示的向后 p 符号。我找到了一种过滤方法,只得到这个符号。我发现这个符号代表一条新线。我试图消除符号后面的所有内容,但似乎可以做到。我尝试使用修剪函数,但它没有修剪任何东西,或者我用错了语法?
select trim(trailing E'([\\n\\r]+)|([\\n\\r]+$)' from ri.dish_type), ri.* from restaurant_items ri
where restaurant_id = 12340 and ri.dish_type ~ E'([\\n\\r]+)|([\\n\\r]+$)'
哪里是我过滤符号的方式。ri.dish_type ~ E'([\\n\\r]+)|([\\n\\r]+$)'
如何消除符号后面的所有文本?
更新
select split_part(ri.dish_type, E'\n\r', 1) from restaurant_items ri
where restaurant_id = 12340 and ri.dish_type ~ E'([\\n\\r]+)|([\\n\\r]+$)'
使用它会得到相同的结果
更新2
select split_part(ri.dish_type, E'\n', 1) from restaurant_items ri
where restaurant_id = 12340 and ri.dish_type ~ E'([\\n\\r]+)|([\\n\\r]+$)'
使用它并删除 \r 似乎可以让它工作。
感谢您的帮助!@Adrian 克拉弗
答:
0赞
Cetin Basoz
8/3/2022
#1
你可以保持简单,做这样的事情:
select
case
when strpos(dish_type, chr(13)) > 0
then left(dish_type, strpos(dish_type, chr(13))-1)
else dish_type
end as dish_type
from restaurant_items
where restaurant_id = 12340;
评论
select split_part(E'test\n\rmoretext', E'\n\r', 1); test
每个字符串函数select split_part(ri.dish_type, E'\n\r', 1)