【发布时间】:2015-11-11 02:58:48
【问题描述】:
我在 Oracle SQL 中有查询:
select town_name,
regexp_substr(town_name, '[^A,]+', 1, 1) as c1,
regexp_substr(town_name, '[^A,]+', 1, 2) as c2,
regexp_substr(town_name, '[^A,]+', 1, rownum) as c_rownum,
rownum
from epr_towns
结果的前 2 行是:
VALGANNA V LG V 1
VARANO BORGHI V R R 2
我需要在 PostgreSQL 上获得相同的结果(对于带有regexp_substr(town_name, '[^A,]+', 1, rownum) as c_rownum 的行),我不知道如何。
你可以帮帮我吗?
谢谢。
【问题讨论】:
-
输入是“town_name”(第一行是“VALGANNA”)。
-
实际值为 VALGANNA 和 VARANO BORGHI(第 1 列)。第 2..4 列是在 Oracle 中使用“regexp_substr”获得的结果。
-
警告!当列表中有 NULL 元素时,通常用于解析分隔字符串的格式 '[^A,]+' 的正则表达式会失败。确保彻底测试。总是期待意外!有关更多详细信息和改进的正则表达式,请参见此处。我不知道它会如何转化为 Postgres:stackoverflow.com/questions/31464275/…
标签: oracle postgresql rownum regexp-substr