SQL server的查询问题
在SQL server中如何截取字符串啊? 例如:上海市水电路841号2楼201室
我需要把号前面的841截取出来然后和另外一张表的号做个对比?
上海市水电路393弄2号1001室这个弄前面的那个393我也需要给拿出来做比较,坐等大牛回帖。
[解决办法]
上海市水电路841号2楼201室
如果前面'上海市水电路'格式固定,即长度固定 然后号码固定那就很好办
declare @address varchar(30)set @address='上海市水电路841号2楼201室'--set @address='上海市水电路393弄2号1001室'select substring(@address,7,3)/*------841*/
[解决办法]
select SUBSTRING ('上海市水电路841号2楼201室' ,7 , 3 )select SUBSTRING ('上海市水电路393弄2号1001室' ,7 , 3 )------841(1 行受影响)------393(1 行受影响)
[解决办法]
declare @str nvarchar(30)=N'上海市水电路841号2楼201室'
select left(stuff(@str,1,patindex('%[0-9]%',@str)-1,''),
patindex('%[^0-9]%',stuff(@str,1,patindex('%[0-9]%',@str)-1,''))-1)
[解决办法]
顶....declare @str nvarchar(30)set @str=N'上海市水电路841号2楼201室'select left(stuff(@str,1,patindex('%[0-9]%',@str)-1,''), patindex('%[^0-9]%',stuff(@str,1,patindex('%[0-9]%',@str)-1,''))-1)