首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL server的查询有关问题

2012-10-12 
SQL server的查询问题在SQL server中如何截取字符串啊? 例如:上海市水电路841号2楼201室我需要把号前面的8

SQL server的查询问题
在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) 

热点排行