码迷,mamicode.com
首页 > 数据库 > 详细

sql函数整理--StringSplit

时间:2014-07-31 15:59:56      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   art   

bubuko.com,布布扣
 1 SET ANSI_NULLS ON
 2 GO
 3 SET QUOTED_IDENTIFIER ON
 4 GO
 5 
 6 CREATE function [dbo].[SplitString]
 7 (
 8     @Input nvarchar(max),
 9     @Separator nvarchar(max)=,, 
10     @RemoveEmptyEntries bit=1 
11 )
12 returns @TABLE table 
13 (
14     [Id] int identity(1,1),
15     [Value] nvarchar(max)
16 ) 
17 as
18 begin 
19     declare @Index int, @Entry nvarchar(max)
20     set @Index = charindex(@Separator,@Input)
21 
22     while (@Index>0)
23     begin
24         set @Entry=ltrim(rtrim(substring(@Input, 1, @Index-1)))
25         
26         if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>‘‘)
27             begin
28                 insert into @TABLE([Value]) Values(@Entry)
29             end
30 
31         set @Input = substring(@Input, @Index+datalength(@Separator)/2, len(@Input))
32         set @Index = charindex(@Separator, @Input)
33     end
34     
35     set @Entry=ltrim(rtrim(@Input))
36     if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>‘‘)
37         begin
38             insert into @TABLE([Value]) Values(@Entry)
39         end
40 
41     return
42 end
splitstring

 

bubuko.com,布布扣
1 declare @str1 varchar(max), @str2 varchar(max), @str3 varchar(max)
2 
3 set @str1 = 1,2,3
4 set @str2 = 1###2###3
5 set @str3 = 1###2###3###
6 
7 select [Value] from [dbo].[SplitString](@str1, ,, 1)
8 select [Value] from [dbo].[SplitString](@str2, ###, 1)
9 select [Value] from [dbo].[SplitString](@str3, ###, 0)
how to use

注释:

1.SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔。

bubuko.com,布布扣
 1 SET QUOTED_IDENTIFIER ON
 2 
 3 SELECT * FROM "USER"  WHERE a=netasp
 4 
 5 SET QUOTED_IDENTIFIER ON
 6 
 7 SELECT * FROM [USER] WHERE a=netasp
 8 
 9 SET QUOTED_IDENTIFIER OFF
10 
11 SELECT * FROM [USER]  WHERE a="netasp"
12 
13 SET QUOTED_IDENTIFIER OFF
14 
15 SELECT * FROM [USER]  WHERE a=  netasp
example

=========================================================

 4个字段都是int型,需要前台把它们合成一个字段输出

bubuko.com,布布扣
 1 set ANSI_NULLS ON
 2 GO
 3 SET QUOTED_IDENTIFIER ON 
 4 GO
 5 CREATE FUNCTION [dbo].[FormatLocaltionName]
 6  (
 7  @rack int,
 8  @floor int,
 9  @position int,
10  @bit int
11  )
12  returns varchar(100)
13  as
14  begin
15    declare @strRack varchar(100),@strFloor varchar(100),@strPosition varchar(100),@strBit varchar(100)
16  
17    declare @strReturn varchar(100)
18    
19    if(@rack<10)
20     begin
21       set @strRack=0 +convert(varchar(2),@rack)
22     end
23    else
24     set @strRack=convert(varchar(50),@rack)
25     set @strFloor=convert(varchar(2),@floor)
26     
27    if(@position<10)
28     begin
29       set @strPosition=0+convert(varchar(2),@position)
30     end
31    else
32     set @strPosition=convert(varchar(50),@position)
33     set @strBit=convert(varchar(2),@bit)
34     
35     set @strReturn=@strRack+-+@strFloor+-+@strPosition+-+@strBit
36     
37     return @strReturn
38  end
标量值函数
bubuko.com,布布扣
1  select dbo.[FormatLocaltionName]([row],[floor],[line],[bit])
2  as localtionName,[row],[floor],[line],[bit] from [tes]
how to use

 

==================================================

聚合函数:对一组值执行计算并返回单个值

标量值函数:返回一个确定类型的标量值

表值函数:以表的形式返回一个返回值

 

sql函数整理--StringSplit,布布扣,bubuko.com

sql函数整理--StringSplit

标签:style   blog   http   color   os   io   for   art   

原文地址:http://www.cnblogs.com/Sherlock--Holmes/p/3880540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!