我是一个初学者,如果我的字段(first_name,last_name,country(有一个"退格";或";选项卡";SQL中的字符序列。有线索吗?
您可以使用正则表达式:
select
case when first_name !~ '^s*$' then first_name end as first_name,
case when last_name !~ '^s*$' then last_name end as last_name,
case when country !~ '^s*$' then country end as country
from mytable
Regex^s*$
在由0到N个空格字符组成的字符串上匹配。s
通常代表空格、制表符和不同类型的换行符(回车、换行…(
如果它们有一个"退格";或";选项卡";字符序列
Postgres特别支持使用转义字符串和特定转义序列的特殊字符。
如果你特别想在退格和制表符上匹配,那么最简单的方法是正则表达式:
str ~ E'[bt]'
SQL是:
select (case when first_name !~ E'[bt]' then first_name end) as first_name,
(case when last_name !~ E'[bt]' then last_name end) as last_name,
(case when country !~ E'[bt]' then country end) as country
from t;
您可以使用like
和and
:来表达这一点
select (case when first_name not like E'%b%' and first_name not like E'%t%' then first_name end) as first_name,
(case when last_name not like E'%b%' and last_name not like E'%t%' then last_name end) as last_name,
(case when country not like E'%b%' and country not like E'%t%' then country end) as country
from t
但是正则表达式确实更简单。