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

怎么sql server 获取第二个‘-’左右俩边值

2013-04-05 
如何sql server 获取第二个‘-’左右俩边值?本帖最后由 poppin19 于 2013-04-03 11:53:00 编辑有个字符串字

如何sql server 获取第二个‘-’左右俩边值?
本帖最后由 poppin19 于 2013-04-03 11:53:00 编辑 有个字符串字段格式如下,如何获取第二个‘-’左边的值和右边的值?

字段
B10-1-40
B10-1-5
B10-1-6
B10-1-7
[解决办法]
左边的值:LEFT(档案号, 5)
右边的值:SUBSTRING(档案号, 7,6) 第二个数字大雨或等于右边的数值宽度
[解决办法]

if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (col nvarchar(16))
insert into [TB]
select 'B10-1-40' union all
select 'B10-1-5' union all
select 'B10-1-6' union all
select 'B10-1-7'

select * from [TB]


SELECT  PARSENAME(REPLACE(col, '-', '.'), 3) ,
        PARSENAME(REPLACE(col, '-', '.'), 2) ,
        PARSENAME(REPLACE(col, '-', '.'), 1)
FROM    dbo.TB

/*
(无列名)(无列名)(无列名)
B10140
B1015
B1016
B1017*/

[解决办法]
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (col nvarchar(16))
insert into [TB]
select 'B10-1-40' union all
select 'B10-1-5' union all
select 'B10-1-6' union all
select 'B10-1-7'

select *,
stuff(col,1,charindex('-',col,charindex('-',col)+1),'') from [TB]
/*
B10-1-40         40
B10-1-5          5
B10-1-6          6
B10-1-7          7

(所影响的行数为 4 行)

热点排行