从Oracle中某列的多行文本数据中提取单行

slmsl1lt  于 2022-12-22  发布在  Oracle
关注(0)|答案(1)|浏览(126)

在Oracle中有一个带有列名详细信息的表地址。此列包含如下数据:

212 S Haw
City ABC
Pin Code

Ask就是编写一个查询,只从这个详细信息列中获取第二行。所以我需要一个结果,它只给予我第二行中的城市名称

enyaitl3

enyaitl31#

你可以使用INSTR找到第一个和第二个换行符CHR(10)的位置,然后使用SUBSTR得到这两个位置之间的子字符串:

SELECT SUBSTR(
         value,
         INSTR(value, CHR(10), 1, 1) + 1,
         INSTR(value, CHR(10), 1, 2) - INSTR(value, CHR(10), 1, 1) - 1
       ) AS second_line
FROM   table_name

其中,对于示例数据:

CREATE TABLE table_name (value) AS
  SELECT '212 S Haw
City ABC
Pin Code' FROM DUAL;

输出:
| 第二线|
| - ------|
| 城市ABC|
小提琴

相关问题