赞
踩
SQL 数据库函数
聚合函数
分析函数
位操作函数
排名函数
行集函数
标量函数
函数确定性
函数排序规则
限制
标量函数类别
函数类别 说明
配置函数 返回当前配置信息。
转换函数 支持数据类型强制转换和转换。
游标函数 返回游标信息。
日期和时间数据类型及函数 对日期和时间输入值执行运算,然后返回字符串、数字或日期和时间值。
图形函数 执行与图形节点和边缘 ID 的字符表示形式之间的转换操作。
JSON 函数 验证、查询或更改 JSON 数据。
逻辑函数 执行逻辑运算。
数学函数 基于作为函数的参数提供的输入值执行运算,然后返回数字值。
元数据函数 返回有关数据库和数据库对象的信息。
安全函数 返回有关用户和角色的信息。
字符串函数 对字符串(char 或 varchar)输入值执行运算,然后返回一个字符串或数字值 。
系统函数 执行运算后返回 SQL Server 实例中有关值、对象和设置的信息。
系统统计函数 返回系统的统计信息。
文本和图像函数 对文本或图像输入值或列执行运算,然后返回有关值的信息。
字符串函数
ASCII,CHAR,CHARINDEX,CONCAT,CONCAT_WS,DIFFERENCE,FORMAT,LEFT,LEN,LOWER,LTRIM,NCHAR,PATINDEX,QUOTENAME,REPLACE,REPLICATE,REVERSE,RIGHT,RTRIM,SOUNDEX,SPACE,STR,STRING_AGG,STRING_ESCAPE,STRING_SPLIT,STUFF,SUBSTRING,TRANSLATE,TRIM,UNICODE,UPPER
CHARINDEX:在第二个字符表达式中搜索一个字符表达式,这将返回第一个表达式(如果发现存在)的开始位置。
CONCAT:此函数以端到端的方式返回从串联或联接的两个或更多字符串值生成的字符串。
LOWER:将大写字符数据转换为小写字符数据后返回字符表达式。
UPPER:返回小写字符数据转换为大写的字符表达式。
1、CONCAT,返回从串联或联接的两个或更多字符串值生成的字符串,字符串拼接
- # 实例1
- # 结果:Happy Birthday 6/6
- SELECT CONCAT('Happy ', 'Birthday ', 6, '/', '6') AS Result;
-
- # 实例2
- CREATE TABLE temp (
- emp_name NVARCHAR(200) NOT NULL,
- emp_middlename NVARCHAR(200) NULL,
- emp_lastname NVARCHAR(200) NOT NULL
- );
-
- INSERT INTO temp VALUES ('Name', 'MiddleName', 'Lastname');
-
- SELECT * FROM temp;
-
- SELECT CONCAT(emp_name,emp_middlename,emp_lastname) AS Result FROM temp;
-
- UPDATE temp set `emp_name` = CONCAT(`emp_name`,'_Hello');
2、首字母大写
- SET ANSI_NULLS ON
- GO
-
- SET QUOTED_IDENTIFIER ON
- GO
-
- create FUNCTION [dbo].[CAP_FIRST] ( @InputString varchar(4000) )
- RETURNS VARCHAR(4000) AS BEGIN
-
- DECLARE @Index INT DECLARE @Char CHAR(1) DECLARE
- @PrevChar CHAR(1) DECLARE @OutputString VARCHAR(255)
-
- SET @OutputString = LOWER(@InputString) SET @Index = 1
-
- WHILE @Index <= LEN(@InputString) BEGIN
- SET @Char = SUBSTRING(@InputString, @Index, 1)
- SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
- ELSE SUBSTRING(@InputString, @Index - 1, 1)
- END
-
- IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
- BEGIN
- IF @PrevChar != '''' OR UPPER(@Char) != 'S'
- SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
- END
-
- SET @Index = @Index + 1 END
-
- RETURN @OutputString
-
- END
- GO
*、CAP_FIRST调用
- select dbo.CAP_FIRST('abcd_abcd')
- select replace(dbo.CAP_FIRST('abcd_abcd'),'_','')
*、首字母大写
- SET ANSI_NULLS ON
- GO
-
- SET QUOTED_IDENTIFIER ON
- GO
-
- create function [dbo].[F_split](@s nvarchar(1000))
- returns nvarchar(1000)
- as
- begin
- declare @str nvarchar(1000),@split nvarchar(100)
- select @s=@s+' ',@str=''
- while charindex(' ',@s)>0
- begin
- set @split=left(@s,charindex(' ',@s))
- set @str=@str+upper(left(@split,1))+right(@split,len(@split))
- set @s=stuff(@s,1,charindex(char(32),@s),'')
- end
- return @str
- end
- GO
*、编码转换UrlEncode
- SET ANSI_NULLS ON
- GO
-
- SET QUOTED_IDENTIFIER ON
- GO
-
-
- CREATE FUNCTION [dbo].[UrlEncode]
- (
- @Param NVARCHAR(2000)
- )
- RETURNS VARCHAR(MAX)
- AS
- BEGIN
- DECLARE @HexStr VARCHAR(MAX)
- --Use system function to convert input string to hex string
- SET @HexStr = master.dbo.fn_varbintohexstr(CONVERT(VARBINARY(MAX), @Param))
- --Remove the starting '0x'
- SET @HexStr = RIGHT(@HexStr, LEN(@HexStr)-2)
- --Declare required variables
- DECLARE @I INT, @Len INT
- DECLARE @Output VARCHAR(MAX), @S CHAR(4), @C CHAR(1)
- DECLARE @LoByte TINYINT, @HiByte TINYINT
- --Get length
- SET @Len=LEN(@HexStr)/4
- --Start with first character
- SET @I=0
- --Prepare the output string
- SET @Output=''
- WHILE @I<@Len
- BEGIN
- SET @S=SUBSTRING(@HexStr, @I*4 + 1, 4)
- IF RIGHT(@S, 2)='00'
- BEGIN
- --Try to convert 2 hex digits to char
- SET @LoByte = ASCII(SUBSTRING(@S, 2, 1)) - 48
- IF @LoByte>10 SET @LoByte = @LoByte - 39 --0x61'a'-> 10
- SET @HiByte = ASCII(SUBSTRING(@S, 1, 1)) - 48
- IF @HiByte>10 SET @HiByte = @HiByte - 39
- SET @C=CHAR(@LoByte + @HiByte * 16)
- --If it's a reserved character, don't encode
- IF @C LIKE '[A-Za-z0-9()''*-._! ]'
- SET @Output = @Output + @C
- ELSE
- SET @Output = @Output + '%' + LEFT(@S, 2)
- END
- ELSE
- SET @Output = @Output + '%u' + RIGHT(@S, 2) + LEFT(@S, 2)
- --Move to next hex
- SET @I = @I + 1
- END
-
- RETURN @Output
- END
- GO
-
- --select dbo.FN_URLDecode('%E5%B9%BF%E4%B8%9C%E7%9C%81%E7%8F%A0%E6%B5%B7%E5%B8%82%E4%BF%A1%E6%81%AF%E5%B7%A5%E7%A8%8B%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8')
- GO
*
*
*
*
*
*
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。