当前位置:   article > 正文

SQL Server 常用函数_sql server 常见函数

sql server 常见函数

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. # 实例1
  2. # 结果:Happy Birthday 6/6
  3. SELECT CONCAT('Happy ', 'Birthday ', 6, '/', '6') AS Result;
  4. # 实例2
  5. CREATE TABLE temp (
  6. emp_name NVARCHAR(200) NOT NULL,
  7. emp_middlename NVARCHAR(200) NULL,
  8. emp_lastname NVARCHAR(200) NOT NULL
  9. );
  10. INSERT INTO temp VALUES ('Name', 'MiddleName', 'Lastname');
  11. SELECT * FROM temp;
  12. SELECT CONCAT(emp_name,emp_middlename,emp_lastname) AS Result FROM temp;
  13. UPDATE temp set `emp_name` = CONCAT(`emp_name`,'_Hello');

2、首字母大写

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. create FUNCTION [dbo].[CAP_FIRST] ( @InputString varchar(4000) )
  6. RETURNS VARCHAR(4000) AS BEGIN
  7. DECLARE @Index INT DECLARE @Char CHAR(1) DECLARE
  8. @PrevChar CHAR(1) DECLARE @OutputString VARCHAR(255)
  9. SET @OutputString = LOWER(@InputString) SET @Index = 1
  10. WHILE @Index <= LEN(@InputString) BEGIN
  11. SET @Char = SUBSTRING(@InputString, @Index, 1)
  12. SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
  13. ELSE SUBSTRING(@InputString, @Index - 1, 1)
  14. END
  15. IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
  16. BEGIN
  17. IF @PrevChar != '''' OR UPPER(@Char) != 'S'
  18. SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
  19. END
  20. SET @Index = @Index + 1 END
  21. RETURN @OutputString
  22. END
  23. GO

*、CAP_FIRST调用

  1. select dbo.CAP_FIRST('abcd_abcd')
  2. select replace(dbo.CAP_FIRST('abcd_abcd'),'_','')

*、首字母大写

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. create function [dbo].[F_split](@s nvarchar(1000))
  6. returns nvarchar(1000)
  7. as
  8. begin
  9. declare @str nvarchar(1000),@split nvarchar(100)
  10. select @s=@s+' ',@str=''
  11. while charindex(' ',@s)>0
  12. begin
  13. set @split=left(@s,charindex(' ',@s))
  14. set @str=@str+upper(left(@split,1))+right(@split,len(@split))
  15. set @s=stuff(@s,1,charindex(char(32),@s),'')
  16. end
  17. return @str
  18. end
  19. GO

*、编码转换UrlEncode

  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5. CREATE FUNCTION [dbo].[UrlEncode]
  6. (
  7. @Param NVARCHAR(2000)
  8. )
  9. RETURNS VARCHAR(MAX)
  10. AS
  11. BEGIN
  12. DECLARE @HexStr VARCHAR(MAX)
  13. --Use system function to convert input string to hex string
  14. SET @HexStr = master.dbo.fn_varbintohexstr(CONVERT(VARBINARY(MAX), @Param))
  15. --Remove the starting '0x'
  16. SET @HexStr = RIGHT(@HexStr, LEN(@HexStr)-2)
  17. --Declare required variables
  18. DECLARE @I INT, @Len INT
  19. DECLARE @Output VARCHAR(MAX), @S CHAR(4), @C CHAR(1)
  20. DECLARE @LoByte TINYINT, @HiByte TINYINT
  21. --Get length
  22. SET @Len=LEN(@HexStr)/4
  23. --Start with first character
  24. SET @I=0
  25. --Prepare the output string
  26. SET @Output=''
  27. WHILE @I<@Len
  28. BEGIN
  29. SET @S=SUBSTRING(@HexStr, @I*4 + 1, 4)
  30. IF RIGHT(@S, 2)='00'
  31. BEGIN
  32. --Try to convert 2 hex digits to char
  33. SET @LoByte = ASCII(SUBSTRING(@S, 2, 1)) - 48
  34. IF @LoByte>10 SET @LoByte = @LoByte - 39 --0x61'a'-> 10
  35. SET @HiByte = ASCII(SUBSTRING(@S, 1, 1)) - 48
  36. IF @HiByte>10 SET @HiByte = @HiByte - 39
  37. SET @C=CHAR(@LoByte + @HiByte * 16)
  38. --If it's a reserved character, don't encode
  39. IF @C LIKE '[A-Za-z0-9()''*-._! ]'
  40. SET @Output = @Output + @C
  41. ELSE
  42. SET @Output = @Output + '%' + LEFT(@S, 2)
  43. END
  44. ELSE
  45. SET @Output = @Output + '%u' + RIGHT(@S, 2) + LEFT(@S, 2)
  46. --Move to next hex
  47. SET @I = @I + 1
  48. END
  49. RETURN @Output
  50. END
  51. GO
  52. --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')
  53. GO

*
*
*
*
*
*

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/738040
推荐阅读
相关标签
  

闽ICP备14008679号