sql coalesce()函数、datalength()函数介绍及应用
- select CONVERT(varchar(12) , getdate(), 101 )
- 09/12/2004
- select CONVERT(varchar(12) , getdate(), 103 )
- 12/09/2004
- select CONVERT(varchar(12) , getdate(), 104 )
- 12.09.2004
- select CONVERT(varchar(12) , getdate(), 105 )
- 12-09-2004
- select CONVERT(varchar(12) , getdate(), 106 )
- 12 09 2004
- select CONVERT(varchar(12) , getdate(), 107 )
- 09 12, 2004
- select CONVERT(varchar(12) , getdate(), 108 )
- 11:06:08
- select CONVERT(varchar(12) , getdate(), 109 )
- 09 12 2004 1
- select CONVERT(varchar(12) , getdate(), 110 )
- 09-12-2004
- select CONVERT(varchar(12) , getdate(), 113 )
- 12 09 2004 1
- select CONVERT(varchar(12) , getdate(), 114 )
- 11:06:08.177
1、COALESCE()函数
---简介---
T-SQL的COALESCE()函数能够让你指定多个表达式,而且COALESCE()会返回组里第一个非空的值。要使用下面的形式,其中expression可以是任何数据类型,并能够等于大多数合法的表达式:
COALESCE (expression [,…n])--(与CASE函数等价)
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()函数
---简介---
返回任何表达式所占用的字节数。
DATALENGTH 对 varchar、varbinary、text、image、nvarchar 和 ntext 数据类型特别有用,因为这些数据类型可以存储可变长度数据。
---示例---
以上例为准,查询语句:
select datalength(width) from basic
查询结果:NULL、NULL、NULL、NULL、NULL、NULL、5、5、5(也就是decimal表达式占用地字节数为5,int 为4,你可以试试其它的sql数据类型)
/*我们一般用于查询将image,varbinary数据类型*/