SQL server的查询有关问题
SQL server的查询问题
在SQL server中如何截取字符串啊? 例如:上海市水电路841号2楼201室
我需要把号前面的841截取出来然后和另外一张表的号做个对比?
上海市水电路393弄2号1001室这个弄前面的那个393我也需要给拿出来做比较,坐等大牛回帖。
------解决方案--------------------
上海市水电路841号2楼201室
如果前面'上海市水电路'格式固定,即长度固定 然后号码固定那就很好办
在SQL server中如何截取字符串啊? 例如:上海市水电路841号2楼201室
我需要把号前面的841截取出来然后和另外一张表的号做个对比?
上海市水电路393弄2号1001室这个弄前面的那个393我也需要给拿出来做比较,坐等大牛回帖。
------解决方案--------------------
上海市水电路841号2楼201室
如果前面'上海市水电路'格式固定,即长度固定 然后号码固定那就很好办
- SQL code
declare @address varchar(30) set @address='上海市水电路841号2楼201室' --set @address='上海市水电路393弄2号1001室' select substring(@address,7,3) /* ------ 841 */
------解决方案--------------------
- SQL code
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)
------解决方案--------------------
- SQL code
顶.... 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)