簡體   English   中英

SQL中刪除值和將值從單列拆分為多列

[英]Deleting values and splitting values from single column to multiple ones in SQL

我有一個名為STREETNAME的列,其中包含基於此模型的數據: townName , streetName , 1其中1是某個streetName的房屋streetName 如何從整個列中刪除townName並將房屋數量放入名為STREETNO的單獨列中?

我建議regexp_substr() 這似乎是 Oracle 中用逗號分隔的組件拆分字符串的最簡單方法:

select regexp_substr(streetname, '[^,]+', 1, 1) as town,
       regexp_substr(streetname, '[^,]+', 1, 2) as street,
       regexp_substr(streetname, '[^,]+', 1, 3) as num
from (select 'town, street, 123' as streetname from dual) x

您可以嘗試在此處使用REGEXP_REPLACE

SELECT
    REGEXP_REPLACE(STREETNAME, '^[^,]+, (.*)$', '\1') AS STREETNAME_NO_TOWN,
    REGEXP_REPLACE(STREETNAME, '^.* (.*)$', '\1') AS STREETNO
FROM yourTable;

上面的別名STREETNAME_NO_TOWN只會刪除城鎮名稱(這是您的問題所要求的),從而留下街道和號碼。 如果您只想隔離街道,請使用以下命令:

REGEXP_REPLACE(STREETNAME, '^[^,]+, ([^,]+),.*$', '\1')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM