微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对于 特殊字符串的处理,比如:ISBN号 '978-7-5007--7',如果想获取第三个与第四个分割符号之间的数字, 那么SQL 内置函数无法直接做到.这时就需要自定义函数.下面自定义三个函数,用于处理特殊的字符串. 一.按指定符号分割字符串,返回分割后的元素个数 ALTER FUNCTION [d…
SQL Server中排名函数row_number,rank,dense_rank,ntile详解 从SQL SERVER2005开始,SQL SERVER新增了四个排名函数,分别如下:1.row_number2.rank3.dense_rank4.ntile 下面我们对这四个函数一一进行讲解 1.Row_Number函数可能row_number函数大家比较熟悉一些,因为它的用途非常的广泛,我们经常在分页与排序中用到它,它的功能就是在每一行中生成一个连续的不重复的序号(是不是和自增量有些像).下…
在SQL Server中COALESCE函数,会返回其参数中第一个不为NULL的参数,效果如下: SELECT COALESCE(NULL,NULL,N'A',NULL,NULL) 结果: SELECT COALESCE(NULL,NULL,N'A',N'B',N'C',NULL) 结果: 使用COALESCE函数时要注意,其参数必须是相同的类型,例如下面的例子中COALESCE函数的参数中,既有字符串类型又有数字类型,就会报错: ,NULL) 结果: 此外,如果COALESCE函数的所有参数都…
Oracle中INSTR函数与SQL Server中CHARINDEX函数 1.ORACLE中的INSTR INSTR函数格式:INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) 说明:返回从 ‘起始位置’ 开始查找 ‘源字符串’ 中与 ‘目标字符串’ 第 ‘匹配序号’ 次匹配的位置 例如:返回从第4位字符开始SQL_Server_2008字符串中第2次出现字符串er的位置 select INSTR('SQL_Server_2008','er',4,2 ) as result from…
SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) (2)参数:datepart 规定应向日期的哪一部分返回新值的参数.下表列出了 Microsoft  SQL Server识别的日期部分和缩写. 日期部分     缩写 Year         yy, yyyy quarter      qq, q Month       mm, m dayof…
操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法.1.语法: quotename('character_string'[,'quote_character']) []里面的内容说明可以省略,缺省情况下,说明用'[]'引用.  character_string,unicode字符数据构成的字符串.character_string是sysname值.  quote_character,用作分隔符的单字符字符串,可以是单引号(').左方括号(…
操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法. 1.语法: quotename('character_string'[,'quote_character']) []里面的内容说明可以省略,缺省情况下,说明用'[]'引用. character_string,unicode字符数据构成的字符串.character_string是sysname值. quote_character,用作分隔符的单字符字符串,可以是单引号(').左方括号([…
一.SQL Server Row_number函数简介   ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 以下是ROW_NUMBER()函数的语法实例: select *,row_number() over(partition by column1 order by column2) as n from tablename 在上面语法中: PARTITION BY子句将结果集划分为分区. ROW_NUMBER(…
Datepart():返回代表指定日期的指定日期部分的整数 语法:Datepart(datepart,date)  返回类型:int DateName():返回代表指定日期的指定日期部分的字符串 语法:DateName(datepart,date) 返回类型:nvarchar 日期部分 缩写 备注 year yy, yyyy 年 quarter qq, q 季度 month mm, m 月 dayofyear dy, y 一年中的第几天 day dd, d 日 week wk, ww 一年中的第…
在sql的使用过程当中,我们偶尔会遇到这样一种情况,就是需要改变数据的存储形式,比如数据库某一张表(Info)当中有一个字段Educational(学历),以前存储的是Json数组,现在由于需求的改变,我需要将数据的存储形式改成Json格式,这样我们就需要对数据进行替换,当数据量太大时,人工操作明显是不可取的,所以作者就找到了sql当中的REPLACE函数,下面分享一下我的个人体会. 参考地址:http://technet.microsoft.com/en-us/library/ms186862…
知识点一:replace()的语法 REPLACE ( string_replace1 , string_replace2 , string_replace3 ) 参数解析: string_replace1 待搜索的字符串表达式.string_replace1 可以是字符数据或二 进制数据 string_replace2 待查找的字符串表达式.string_replace2 可以是字符数据或二 进制数据. string_replace3 替换用的字符串表达式.string_replace3 可以…
常用的情形是在部署测试数据库时需要通过SQL代码自动重新创建数据库,在删除的时候往往会发生错误,错误信息一般会指出目前有用户连接到这个数据库上,因此不能删除. 实现的方式是通过查询指定数据库中活跃的 SPID, 然后一一删除. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO USE MASTER GO IF OBJECT_ID('dbo.USP_KillSPID','P')IS NOT NULL DROP PROCEDURE dbo.USP_Ki…
SQL常用函数之三 REPLICATE () 按指定次数重复字符表达式. 语法 REPLICATE ( character_expression, integer_expression) 参数 character_expression 字符数据型的字母数字表达式,或者可以隐式转换为 nvarchar 或 ntext 的其他数据类型的字母数字表达式. integer_expression 可以隐式转换为 int 的表达式.如果 integer_expression 为负,将返回空字符串. 返回值 …
问题:博主看到项目脚本,有些地方使用了format函数来把当前日期转换成yyyyMMddHHmmssffff的格式,但在测试环境数据库是sql 2008 r2,是不支持format这个函数的.脚本会报错: 'format' 不是可以识别的 内置函数名称. 'format' is not a recognized built-in function name. 解决方案:由于低版本的SQL不支持format,例如sql 2008\2005\2000,需要使用其他方法来代替.博主经过试验,使用了co…
LEN('T ') =1 LEN(' T') =2 在数据库中分解字符串时要注意,例如以'^'分隔'X ^ T ',分解时要注意最后的'T '被分解成'T' 可用如下的代码来进行完整的分解 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ),)) )) as begin declare @i int --set @SourceStr = rtrim(ltrim(@SourceStr)) set @i = charindex(@StrSeprate…
一个列的数据类型是 int ,从 1 开始自动增长,另一个列是字符串,现在想把 int 列转换成 九个字符,比如 1 转换后就是 000000001 ,添到字符串列,怎么实现呢? set @imaxUType=190 select @tmp=right(str(@imaxUType+1000000000),9) select @tmp 结果 Column1 ---------- 000000190 这个方法至多9位高了后MSSQL 转出来的是 *********咯! 期待牛人更好的不限位数的解决…
字符串函数 日期函数 数学函数 系统函数…
-- select * from [dbo].[SplitToTable]('ADSF','|') -- 分解字符串 ALTER FUNCTION [dbo].[SplitToTable] ( @SplitString varchar(max), ) ) RETURNS @SplitStringsTable TABLE ( ,), [value] nvarchar(max) ) AS BEGIN DECLARE @CurrentIndex int; DECLARE @NextIndex int;…
select * from OrderPolicyDetail order by ( case Project when 'C' then 1, when 'A' then 2, when 'D' then 3, when 'B' then 4 else '' end ) 当字段类别少时,可以利用case when排序字段…
除了使用系统提供的函数外,用户还可以根据需要自定义函数.用户自定义函数是 SQL Server 2000 新增的数据库对象,是 SQL Server 的一大改进.与编程语言中的函数类似,Microsoft SQL Server 用户定义函数是接受参数.执行操作(例如复杂计算)并将操作结果以值的形式返回的例程.返回值可以是单个标量值或表变量结果集. 用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过 EXECUTE…
当我们将Excel的数据导入SQL Server时,如果用SQL Server的字符串类型(VARCHAR和NVARCHAR等)来存储从Excel导入的数字,有时候这些数字会变成科学记数法字符串(例如'1.23E+10'实际上是'12300000000'). 这并不是我们想要的结果,我们希望从Excel导入的数字还是数字字符串,而不是科学记数法. 在SQL Server中我们可以通过这个思路来将 科学记数法字符串 变为 数字字符串: 首先将 科学记数法字符串 转换为 FLOAT类型 接着将 FL…
在SQL Server中用户可以自定义函数,像内置函数一样返回标量值,也可以将结果集用表格变量返回.用户自定义函数的2种类型:1.标量函数:返回一个标量值:2.表格值函数{内联表格值函数.多表格值函数}:返回行集(即返回多个值). 1.标量函数 Create function 函数名(参数) Returns 返回值数据类型 [with {Encryption | Schemabinding }] [as] begin SQL语句(必须有return 变量或值) End Schemabinding…
用户定义函数(UDF)分类  SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(Table-Valued Function).其中表值函数又分为Inline table-valued functions和Multistatement table-valued functions. 用户定义函数(UDF)在 SQL Server 中发挥重要的作用.用户定义函数可以用于执行复杂的逻辑…
SQL Server 中截取字符串常用的函数: .LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' ) 返回从字符串左边开始指定个数的字符 ); 返回结果:SQL_ .RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数' ) 返回字符串中从右边开始指定个数的…
    工作中会遇到SQL Server模拟数据生成以及数值列值(如整型.日期和时间数据类型)随机填充等等任务,这些任务中都要使用到随机数.鉴于此,本文将对SQL Server中随机数的使用简单做个总结 .   T-SQL 随机有关的三个函数          RAND([seed] 此函数生成从0到1之间随机 float 值(详细说明查看https://technet.microsoft.com/zh-cn/library/ms177610(v=sql.90).aspx).   CHECKSU…
ylbtech-SQL Server:SQL Server-SQL Server中的时间函数 SQL Server中的时间函数. 1,SQL Server中的时间函数 返回顶部 1.   当前系统日期.时间      select getdate() 2. dateadd   在向指定日期加上一段时间的基础上,返回新的 datetime 值     例如:向日期加上2天     select dateadd(day,2,'2004-10-15')   --返回:2004-10-17 00:00:…
SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数'  ) 返回从字符串左边开始指定个数的字符  ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数'  ) 返回字符串中从右边开始指…
我们如果要在sql server中,使用截取字符串的方法要怎样使用呢? sql server提供了3个常用截取字符串方法,LEFT().RIGHT().SUBSTRING() /****** Sql Server中截取字符串的常用方法 ******/ --1.LEFT()方法--- --函数说明--- --1)语法:LEFT(character,integer) --2)介绍:参数1:要截取的字符串,参数2:截取字符个数 --3)使用: --返回从字符串左边开始指定个数的字符-- ) --4)返…
SQL Server中的LEFT.RIGHT函数. LEFT:返回字符串中从左边开始指定个数字符. LEFT(character_expression,integer_expression); RIGTH:返回字符串从右边开始指定个数字符. RIGHT(character_expression,integer_expression); 例: SELECT LEFT('abcedf',3) as leftResult; -- 返回从左侧数前 3 个字符,第二个参数不接收负数,会报错 SELECT…
简介 SQL Server 2012之后对窗口函数进行了极大的加强,但对于很多开发人员来说,对窗口函数却不甚了解,导致了这样强大的功能被浪费,因此本篇文章主要谈一谈SQL Server中窗口函数的概念. 什么是窗口函数 窗口函数,也可以被称为OLAP函数或分析函数.理解窗口函数可以从理解聚合函数开始,我们知道聚合函数的概念,就是将某列多行中的值按照聚合规则合并为一行,比如说Sum.AVG等等,简单的概念如图1所示. 图1.聚合函数 因此,通常来说,聚合后的行数都要小于聚合前的行数.而对于窗口函数…