比如有个字符串是'xx.exe|0',我要把这个字符串变成两个字段然后一条插入语句,进入数据库。这字符串怎么分隔成两个字段呢?DECLARE @TempStr VARCHAR(20)
SET @TempStr ='xx.exe|0' DECLARE @Temp TABLE
(
[name] VARCHAR(10)
[value] tinyint
)
insert into @Temp ([name],[value])
-- 这里怎么写?
最后查询
select * from @Temp
--结果
xx.eee 0
SET @TempStr ='xx.exe|0' DECLARE @Temp TABLE
(
[name] VARCHAR(10)
[value] tinyint
)
insert into @Temp ([name],[value])
-- 这里怎么写?
最后查询
select * from @Temp
--结果
xx.eee 0
解决方案 »
- 在sql 2000字段类型为text的字段中输入一篇文章,如何计算其字数
- 100求一SQL语句,在线等
- 求循环插入的问题
- 求一多条件搜索的存储过程,高手哥哥们请进~!!
- SQL2000 Server可以在WinXP上安装和正常运行吗?回答有分,在线等
- 请帮看哈这条sql怎么加索引优化
- mssql 如何取得小数后两位,不做四舍五入处理
- 哪位大侠能说下sql server 2000的核心思想是什么
- print 和 select 有什么区别 ? with cube 什么作用 ?
- 各位大哥求救(在线等)
- 求sql 语句 order by 两个字段都是 datetime 的问题
- 关于通过“链接服务器”的方式,调用目标服务器上的存储过程的问题。
/****** Object: UserDefinedFunction [dbo].[fnSys_SplitString] Script Date: 03/19/2013 15:22:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO/*
功能说明:传入字符串跟分割符('''SGHE00000003'',''SGHE00000004'',''SGHE00000005'''),返回一个Table
*/
ALTER function [dbo].[fnSys_SplitString]
(
---字符串分割
@Str varchar(max), --传入的字符串
@SeprateStr varchar(10)--分隔符
)
Returns @temp table(Code varchar(100)) --返回一个Table
As
Begin
Declare @i int
Set @Str=REPLACE(@str,'''','')
Set @Str =rtrim(ltrim(@Str ))
Set @i=charindex(@SeprateStr,@Str )
While @i>=1
Begin
Insert @temp values(left(@Str ,@i-1))
Set @Str =substring(@Str ,@i+1,len(@Str )-@i)
Set @i=charindex(@SeprateStr,@Str )
End
If @Str <>''
Insert @temp values(@Str )
Return
End
SET @TempStr ='xx.exe|0' DECLARE @Temp TABLE
(
[name] VARCHAR(10),
[value] tinyint
)
insert into @Temp
select left(@TempStr,charindex('|',@TempStr)-1),right(@TempStr,len(@TempStr)-charindex('|',@TempStr))
-- 这里怎么写?select * from @Temp
/*
name value
----------------
xx.exe 0
*/
select left(@TempStr,charindex('|',@TempStr)-1),substring(@TempStr,charindex('|',@TempStr)+1,len(@TempStr))
DECLARE @TempStr VARCHAR(20)
SET @TempStr ='xx.exe|0' DECLARE @Temp TABLE
(
[name] VARCHAR(10),
[value] tinyint
)
insert into @Temp ([name],[value])
select substring(@TempStr,1,charindex('|',@TempStr)-1),
substring(@TempStr,charindex('|',@TempStr)+1,20)select * from @Temp/*
name value
---------- -----
xx.exe 0(1 row(s) affected)
*/
你是什么情况 我这解析字符串的方法多 http://blog.csdn.net/travylee/article/details/7724016