SQL 特殊函数

 

1、COALESCE()函数

---简介---
T-SQL的COALESCE()函数能够让你指定多个表达式,而且COALESCE()会返回组里第一个非空的值。要使用下面的形式,其中expression可以是任何数据类型,并能够等于大多数合法的表达式:

CASE
    WHEN (expression1 IS NOT NULL) THEN expression1
    ...
    WHEN (expressionN IS NOT NULL) THEN expressionN
    ELSE NULL

如果所有自变量(expression1-N)均为 NULL,则 COALESCE 返回 NULL 值。

---示例---
create database dbTest
use dbTest
create table basic
(
[id] int identity(1,1) primary key,
[length] decimal null,
[height] decimal null,
[width] decimal null
)

插入一条数据:
insert into basic values(null,null,null)
查询语句:
select coalesce(length,height,width) from basic

--查询结果:NULL

插入下列数据:
insert into basic values(1.00,null,null)
insert into basic values(2.00,null,null)
insert into basic values(3.00,null,null)
insert into basic values(null,4.00,null)
insert into basic values(null,5.00,null)
insert into basic values(null,6.00,null)
insert into basic values(null,null,7.00)
insert into basic values(null,null,8.00)
insert into basic values(null,null,9.00)

查询语句:
★ select coalesce(max(height),0)+1.00 from basic
★ select cast(coalesce(length * 2, height, width * 3) as decimal ) as 'Total List' from basic

查询结果:
★7.00
★2、4、6、4、5、6、21、24、27;
/*我们一般用它来检索索引(顺序号,层次号),最大者id*/

返回任何表达式所占用的字节数。
2.DATALENGTH

对 varchar、varbinary、text、image、nvarchar 和 ntext 数据类型特别有用,因为这些数据类型可以存储可变长度数据。

NULL 的 DATALENGTH 的结果是 NULL。

---示例---

以上例为准,查询语句:
select datalength(width) from basic

查询结果:NULL、NULL、NULL、NULL、NULL、NULL、5、5、5(也就是decimal表达式占用地字节数为5,int 为4,你可以试试其它的sql数据类型)
/*我们一般用于查询将image,varbinary数据类型*/

3.

Sql Server中两个判断是否为空的函数NULLIF和ISNULL的说明如下:

NULLIF():需要两个参数

例子:NULLIF(a,b)
说明:如果a和b是相等的,那么返回NULL,如果不相等返回a
select NULLIF('eqeqweqwe','1') 结果是eqeqweqwe
select NULLIF(1,1) 结果是NULL
a和b的类型要一致


ISNULL():需要两个参数

例子:ISNULL(a,b)
说明:如果a和b同时为NULL,返回NULL,如果a为NULL,b不为NULL,返回b,如果a不为NULL,b为NULL返回a,如果a和b都不为NULL返回a
select ISNULL(null,null)结果是null
select ISNULL(null,33)结果是33
select ISNULL('ddd',null)结果是ddd
select ISNULL(44,33)结果是44

 

4.

QUOTENAME (Transact-SQL)

这个函数会返回一个添加了分隔符的Unicode字符串, 这个函数会使得输入的字符串变为一个合法的Microsoft SQL Server的分隔了的标示符.

 

格式:

QUOTENAME ( 'character_string' [ , 'quote_character' ] )

 

参数:

' character_string '

这是一个Unicode字符数据组成的字符串. character_string 是一个 sysname 并且其上限为128个字符, 如果你输入超过128个字符, 那么会返回NULL.

' quote_character '

这是一个单个字符的字符串, 被指派用来作分隔符的. 它可以使单引号( ' ), 左括号或右括号( [ ] ), 或者是双引号( " ). 如果quote_character 没被指定的话, 默认会使用方括号.

举例:

select QUOTENAME('%' + 'awpatp'+ '%','''')

 

结果:
'%yunzhang%'

select QUOTENAME( 'awpatp','[')

 

结果:
[yunzhang]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值