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
相关文档:
今天在登录sql2005的时候,想用sa的验证方式登录,发现登录不了,在网上查了下,按照下面的就可以解决。之前在装sql2005的时候,是设置成windows验证方式登录的。
具体解决方案如下:
1. 开启sql2005远程连接功能,开启办法如下,
配置工具->sql server外围应用配置器->服务和连接的 ......
1、简单查询
求出在1988年以前被雇佣的销售人员
SELECT NAME
from SALESREPS
WHERE HIRE_DATE<'01-JAN-88'
列出其销售量低于销售目标的80%的销售点
SELECT CITY,SALES,TAGET
from SALESPEPS
WHERE SALES<0.8*TAGET ......
几个存储过程,很简单的,但是我从来没有学习过,呵呵,这个正是我要来培训的目的
-- =============================================
-- Author:
-- Create date: 2010年05月12日
-- Description: 此过程用于查询所有用户名及密码
-- =============================================
CREATE PROCED ......
注:出处已不可考,不过,其中不少语句还是蛮精妙的。
Student(S#(学号),Sname(姓名),Sage(年龄),Ssex(性别)) 学生表
Course(C#(课程编号),Cname(课程名称),T#(老师编号)) 课程表
SC(S#(学号),C#(课程编号),score(分数)) 成绩表
Teacher(T#(老师编号),TnameSname(姓名)) 教师表
问题:
1、查询“001” ......
实例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
注 ......