返回非中文字符

群友问如何返回数据中的非中文字符。

模拟数据源如下

CREATE OR REPLACE VIEW v AS
SELECT '你好,很好bbb' AS c1 FROM dual UNION ALL
SELECT '你好#' AS c1 FROM dual UNION ALL
SELECT '你好a' AS c1 FROM dual UNION ALL
SELECT '你好z' AS c1 FROM dual UNION ALL
SELECT '你好A' AS c1 FROM dual UNION ALL
SELECT '中華人民共和國
a' AS c1 FROM dual;

这个以前没做过。尝试写法如下

SELECT regexp_substr(c1,'[a-zA-Z[:punct:][:space:]]+') FROM v

不过,自已也知道这种枚举方法不好。有可能会遗漏。

还是查下资料吧。

翻了几篇文章,大多是错的。

终于找到一种写法

SQL> SELECT regexp_substr(c1, '([^[:alpha:]]|[a-z,A-Z])+') FROM v;
REGEXP_SUBSTR(C1,'([^[:ALPHA:]
--------------------------------------------------------------------------------
,
#
a
z
A
a
6 rows selected

记之。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值