sql server 自定义split(分割)函数
ALTER function [dbo].[split]
(
@SourceSql varchar(8000),
@StrSeprate varchar(10)
)
returns @temp table(F1 varchar(100))
as
begin
declare @i int
set @SourceSql = rtrim(ltrim(@SourceSql))
set @i = charindex(@StrSeprate,@SourceSql)
while @i >= 1
begin
if len(left(@SourceSql,@i-1))>0
begin
insert @temp values(left(@SourceSql,@i-1))
end
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql <> ''
insert @temp values(@SourceSql)
return
end
----------------------------------------
//应用
--开始迭代分割出来的参数
declare @str nvarchar(10)
declare auth_cur cursor for select F1 from split(要分割的参数,'分隔符')
open auth_cur
fetch next from auth_cur into @str
while ( @@fetch_status = 0 )
begin
//做处理
end
close auth_cur
deallocate auth_cur
相关文档:
1.在mssql创建存储过程,在db->存储过程->新建存储过程(右键)
CREATE PROCEDURE user_logon_check @username varchar(45),@userpsw varchar(45)
AS
select * from users where UserName = @username and PasswordCode = @userpsw
return 10
GO
2.在mysql创建存储过程,使用Mysql Query Browser,在db->表 ......
--SQL Server:
Select TOP N * from TABLE Order By NewID()
--Access:
Select TOP N * from TABLE Order By Rnd(ID)
Rnd(ID) 其中的ID是自动编号字段,可以利用其他任何数值来完成,比如用姓名字段(U ......
实例1:只返回单一记录集的存储过程。
银行存款表(bankMoney)的内容如下
Id
userID
Sex
Money
001
Zhangsan
男
30
002
Wangwu
男
50
003
Zhangsan
男
40
要求1:查询表bankMoney的内容的存储过程
create procedure sp_query_bankMoney
as
select * from bankMoney
go
exec sp_query_bankMoney
注 ......