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

求个拆分字符串更新的语句,该如何处理

2012-01-18 
求个拆分字符串更新的语句表A中有列myfield该列存的信息格式:XXXX|YYYYXXXX和YYYY(五位以内的字符,也有可

求个拆分字符串更新的语句
表A中有列myfield

该列存的信息格式:XXXX|YYYY

XXXX和YYYY(五位以内的字符,也有可能为空)

现在要把这列中的XXXX更新到另一列H中
把YYYY更新到另一列N中

这更新语句要怎么写

[解决办法]
create table 表A(myfield varchar(20),H varchar(10),N varchar(10))
insert 表A
select 'XXXX|YYYY ',null,null

go

CREATE FUNCTION dbo.f_splitSTR(
@s varchar(8000), --要分拆的字符串
@split varchar(10), --数据分隔符
@pos int -- 取第几个
)RETURNS varchar(100)
AS
BEGIN
DECLARE @splitlen int, @re varchar(100)
SET @splitlen=LEN(@split+ 'a ') - 2
WHILE CHARINDEX(@split,@s) > 0 AND @pos > 0
SELECT
@re = LEFT(@s,CHARINDEX(@split,@s)-1),
@s=STUFF(@s,1,CHARINDEX(@split, @s)+@splitlen, ' '),
@pos = @pos - 1
RETURN(CASE
WHEN @pos = 0 THEN @re
WHEN @pos = 1 THEN @s
ELSE NULL END)
END

GO

-- 调用
-- SELECT
-- dbo.f_splitSTR(myfield, '| ', 1) as H,
-- dbo.f_splitSTR(myfield, '| ', 2) as N
-- from 表A


update 表A
set H=dbo.f_splitSTR(myfield, '| ', 1),
N=dbo.f_splitSTR(myfield, '| ', 1)

select * from 表A

drop table 表A
drop function dbo.f_splitSTR

热点排行