SQL 特殊函数应用

1Isnumeric:返回10,检验数值是否为数字类型 。

示列:select * from tb where isnumeric(列)<>1   isnumeric返回非数值的数据行。

 

2) Isdate:测试某一字段是否是有效的datetime 类型,一般用于检查时间列是否存在非正确时间数值,比如系统生成 201608 1、2016801 等这样的时间数值。

示列:select  * from tb where isdate(列)<>1 

 

3) Patindex-返回指定表达式某模式第一次出现的起始位置,它与charindex 函数不一样。如果在全部有效的文本和字符数据类型中没有找到该模式,则返回0。

如:selectpatindex('%[0-9][A-Z]%','AA_BB_9C_DD_AA_9F_CC_DD')

-- 返回:7

selectcharindex('%[0-9][A-Z]%','AA_BB_9C_DD_AA_9F_CC_DD')

-- 返回:0

看出来没有?patindex函数可以使用通配符,而charindex函数不能。也就是说:patindex函数功能更强大!

4)parsename 函数应用

select parsename('192.168.1.25',4) as section1,

parsename('192.168.1.25',3)as section2,

parsename('192.168.1.25',2)as section3,

parsename('192.168.1.25',1)as section4

--结果 192 168 1 25

注意第一段是从4开始取的,因为这个函数对应的顺序是4是Servername,3是Database name,2是Schema name,1是Object name

通过这样的方法可以做很多简单的分割应用,当然只能用于.号的字符串且只能是少于4段。

parsename的语法就是 截取点 '.' 后面的字符串,1为倒数第一,2为倒数第二...

5-1newid( )  随机函数1,需跟order by newid() 一起使用

比如:select  top 10 * from tb  order by newid()       随机抽取前10行数值.

5-2)Rand() 随机函数2 ,比如随机抽取出一个时间段内的数据

:select DATEADD(minute,25*rand()-datepart(minute,'18:00:00'),'18:00:00')

结果是:18001825的随机数

select dateadd(minute,30-15*RAND(),'18:00:00')--18:15~18:30的随机时间

select dateadd(minute,30+15*RAND(),'20:00:00')--20:30~20:45的随机时间

select dateadd(d,-round(rand()*10,0),getdate()),dateadd(d,round(rand()*10,0),getdate()) 随机抽取20天内的数据

 

6) checksum

-- 返回按照表的某一行或一组表达式计算出来的校验和值。 checksum 用于生成哈希索引。

checksum ( *| expression [ ,...n ] )

*指定对表的所有列进行计算。如果有任一列是非可比数据类型,则 checksum 返回错误。

非可比数据类型有 text、ntext、image、xml 和 cursor,还包括以上述任一类型作为基类型的 sql_variant。

expression除非可比数据类型之外的任何类型的表达式。

示例:

-- 找出在T1有,T表没有的记录。

select*from t1where checksum(*)notin (select checksum(*)from t )

上面示例,等于是把t1表里的一行数据hash和t表一行数据hash后相比,就是说两个表里有没有行完全相当的。

----------------

sign(int_expr)                     根据正数,0,负数,,返回+1,0,-1

7)quotename 函数

quotename 使函数中的输入成为一个有效的标识符

select QUOTENAME('dddd') 返回[dddd]

selectQUOTENAME('dddd','"') 返回"dddd"

--------------------------------------------------------

8)   coalesce函数

(下面简称函数),返回一个参数中非空的值。如:

SELECT  COALESCE(NULL, NULL, GETDATE())

由于两个参数都为null,所以返回getdate()函数的值,也就是当前时间。即返回第一个非空的值。由于这个函数是返回第一个非空的值,所以参数里面必须最少有一个非空的值,如果使用下面的查询,将会报错。

发布了22 篇原创文章 · 获赞 7 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qyx0714/article/details/53259896