34,590
社区成员
发帖
与我相关
我的任务
分享
DECLARE @TB TABLE(房屋地址 VARCHAR(100))
INSERT @TB SELECT '南京路19-3号1单元301室'
UNION ALL SELECT '南京路19-1号3单元201室'
UNION ALL SELECT '南京路19-2号3单元501室'
UNION ALL SELECT '南京路15号4单元402室'
DECLARE @TA TABLE (楼号 VARCHAR(20),单元号 VARCHAR(20),房屋号 VARCHAR(20))
INSERT INTO @TA (楼号,单元号,房屋号)
SELECT 楼号=LEFT(房屋地址,CHARINDEX('号',房屋地址)),
单元号=SUBSTRING(房屋地址,CHARINDEX('号',房屋地址)+1,CHARINDEX('元',房屋地址)-CHARINDEX('号',房屋地址)),
房屋号=STUFF(房屋地址,1,CHARINDEX('元',房屋地址),'')
FROM @TB
SELECT * FROM @TA
/*
楼号 单元号 房屋号
-------------------- -------------------- --------------------
南京路19-3号 1单元 301室
南京路19-1号 3单元 201室
南京路19-2号 3单元 501室
南京路15号 4单元 402室
(所影响的行数为 4 行)
*/
insert 表2
select left(房屋地址,charindex('号',房屋地址)) as 楼号,
substring(房屋地址,charindex('号',房屋地址)+1,charindex('单元',房屋地址)-charindex('号',房屋地址)+1) as 单元,
right(房屋地址,len(房屋地址)-charindex('单元',房屋地址)-1) as 房屋号
from 表1
where 房屋地址 like '%号%单元%'
這樣?
--> -->
if not object_id('Tempdb..#T') is null
drop table #T
Go
Create table #T([Col1] nvarchar(15))
Insert #T
select N'南京路19-3号1单元301室' union all
select N'南京路19-1号3单元201室' union all
select N'南京路19-2号3单元501室' union all
select N'南京路15号4单元402室'
Go
Select
substring(Col1,patindex(N'%路%',Col1)+1,patindex(N'%号%',Col1)-patindex(N'%路%',Col1)-1),
substring(Col1,patindex(N'%号%',Col1)+1,patindex(N'%单元%',Col1)-patindex(N'%号%',Col1)-1),
replace(right(COl1,patindex(N'%元单%',reverse([Col1]))-1),N'室','')
from #T
19-3 1 301
19-1 3 201
19-2 3 501
15 4 402
(4 個資料列受到影響)