sql函数整理--StringSplit

 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

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 时,标识符可以由双引号分隔,而文字必须由单引号分隔。

 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型,需要前台把它们合成一个字段输出

 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 @[email protected]+‘-‘[email protected]+‘-‘[email protected]+‘-‘+@strBit
36
37     return @strReturn
38  end

标量值函数

1  select dbo.[FormatLocaltionName]([row],[floor],[line],[bit])
2  as localtionName,[row],[floor],[line],[bit] from [tes]

how to use

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

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

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

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

sql函数整理--StringSplit

时间: 2024-08-01 00:15:48

sql函数整理--StringSplit的相关文章

SQL函数整理

1.convert()     定义:(1)把日期转换为新数据类型的通用函数           (2)可以用不同的格式显示日期/时间数据     语法:convert(data_type(length),data_to_be_converted,style)     参数:data_type(length) 规定目标数据类型(带有可选的长度).data_to_be_converted 含有需要转换的值.style 规定日期/时间的输出格式   实例: CONVERT(VARCHAR(24),G

sql函数 StringSplit(SELECT * from Split(&#39;黄色,蓝色,黑色&#39;,&#39;,&#39;))

create function [dbo].[StringSplit]( @str nvarchar(max), --字符串 @spliter nvarchar(10)) --分割符returns @tb table(Item nvarchar(256)) --返回对应表ASBEGIN DECLARE @Num int,@Pos int, @NextPos int SET @Num = 0 SET @Pos = 1 WHILE(@Pos <= LEN(@str)) BEGIN SELECT @N

Microsoft SQL Server 自定义函数整理大全(下)

34.字符串转成16进制函数 /**************************** 字符串转成16进制 作者:不得闲 QQ: 75492895 Email: [email protected] ****************************/ --创建函数(suiyunonghen(不得闲)) Create Function VarCharToHex(@Str Varchar(400)) returns varchar(800) as begin declare @i int,@

[SQL] 常用函数整理(T-SQL 版)

常用函数整理(T-SQL 版) 一.数学函数 1.求绝对值 ABS() 函数用来返回一个数值的绝对值. SELECT ABS(-5.38) AS absValue; 2.求指数 POWER()  函数是用来计算指数的函数.该函数接受两个参数,第一个参数为待求幂的表达式,第二个参数为幂. SELECT POWER(5, -0.5) AS powerValue1, POWER(5, 2) AS powerValue2, POWER(5, 3) AS powerValue3; 3.求平方根 SQRT(

2015-8-25-关于后端的知识以及常用函数整理

首先结构一般是分为B/S(Browser/Server)和C/S(Client/Server)的,我们所用的是基于B/S结构的. 其中这里的B主要是一些控件的组成的页面,主要是由JScript控制的, 其中的S主要是由SSL代码控制的,又分为Server Script和Data Sources,首先来说说两者的一些区别(Server Script用SS代替,Data Sources用DS代替): 对于我们这个LIMS系统来说,最常用的操作就是对数据库的增.删.改.查,其中的“查”,也就是从数据库

计算地球上两个坐标点(经度,纬度)之间距离sql函数

go --计算地球上两个坐标点(经度,纬度)之间距离sql函数 --作者:lordbaby --整理:www.aspbc.com CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNS FLOAT AS BEGIN --距离(千米) DECLARE @Distance REAL DECLARE @EARTH_RADIUS REAL SET @

php函数整理

php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_until() 函数延迟代码执行直到指定的时间. time_nanosleep() 函数延迟代码执行若干秒和纳秒. sleep() 函数延迟代码执行若干秒. show_source() 函数对文件进行语法高亮显示. strip_whitespace() 函数返回已删除 PHP 注释以及空白字符的源代

个项目涉及到的50个Sql语句(整理版)

/*标题:一个项目涉及到的50个Sql语句(整理版)作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开)时间:2010-05-10地点:重庆航天职业学院说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句.问题及描述:--1.学生表Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师

SQL函数说明大全

一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下表给出了T-SQL函数的类别和描述. 函数类别 作用 聚合函数 执行的操作是将多个值合并为一个值.例如 COUNT.SUM.MIN 和 MAX. 配置函数 是一种标量函数,可返回有关配置设置的信息. 转换函数 将值从一种数据类型转换为另一种. 加密函数 支持加密.解密.数字签名和数字签名验证. 游标函数 返回有关游标状态的信息.