Oracle数据库中提取address表details列第二行数据的SQL查询需求
提取Oracle多行文本列的第二行数据
针对address表中details列的多行文本(示例含地址、城市、邮编三行),可以使用Oracle的正则表达式函数REGEXP_SUBSTR精准提取第二行内容:
SELECT REGEXP_SUBSTR(details, '^.*$', 1, 2, 'm') AS city_name FROM address;
参数说明
'^.*$':匹配一行完整内容,^代表行开头,$代表行结尾1:从字符串起始位置开始匹配2:指定提取第2个匹配结果(即第二行)'m':启用多行模式,让^和$匹配每一行的首尾,而非整个字符串的首尾
如果数据里的换行符是回车+换行(CHR(13)||CHR(10)),该语句依然有效,'m'模式会自动识别这类换行分隔的行。
验证示例
假设details列内容为:
212 S Haw
City ABC
Pin Code
执行上述SQL后,city_name列会返回City ABC。
内容的提问来源于stack exchange,提问作者Shitu
相关产品推荐
相关产品推荐

