SQL语句

  • AVG()
  • NULLIF()
  • DECIMAL()
  • CAST()
  • CASE..WHEN..END
  • DISTINCT
  • COUNT()
  • ROUND()
  • MIN()


AVG()

AVG 函数返回数值列的平均值。NULL 值不包括在计算中。

SELECT AVG(column_name) FROM table_name

NULLIF()

NULLIF(Expression1,Expression2):给定两个参数Expression1和Expression2,如果两个参数相等,则返回NULL;否则就返回第一个参数。
等价于:

Case WHEN Expression1=Expression2 Then NULL ELSE Expression1

例如Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1。

DECIMAL()

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)
decimal(a,b)

参数说明

a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。

CAST()

CAST (expression AS data_type)
参数说明
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。

使用CAST函数进行数据类型转换时,在下列情况下能够被接受:
(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。

如果试图进行不可能的转换(例如,将含有字母的 char 表达式转换为 int 类型),SQServer 将显示一条错误信息。
如果转换时没有指定数据类型的长度,则SQServer自动提供长度为30。

CASE…WHEN…END

Case具有两种格式。简单Case函数和Case搜索函数。

第一种 格式 : 简单Case函数 :

格式说明

case 列名

when 条件值1 then 选择项1

when 条件值2 then 选项2…

else 默认值 end

select 
case  	 job_level
when    '1'    then    '1111'
when   '2'    then    '1111'
when   '3'    then    '1111'
else    'eee'  
end
from    dbo.employee

第二种 格式 :Case搜索函数

格式说明

case

when 列名= 条件值1 then 选择项1

when 列名=条件值2 then 选项2…

else 默认值 end

update  employee
set    e_wage =
case
when   job_level = '1'   then e_wage*1.97
when   job_level = '2'   then e_wage*1.07
when   job_level = '3'   then e_wage*1.06
else   e_wage*1.05
end

提示:通常我们在写Case When的语句的时候,会容易忘记 end 这个结束,一定要记得哟!

比较: 两种格式,可以实现相同的功能。

简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。

还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。

DISTINCT

在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。

关键词 DISTINCT 用于返回唯一不同的值。

语法:
SELECT DISTINCT 列名称 FROM 表名称

COUNT()

COUNT() 函数返回匹配指定条件的行数。

SQL COUNT() 语法

SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_name

SQL COUNT(*) 语法
COUNT(*) 函数返回表中的记录数:

SELECT COUNT(\*) FROM table_name

SQL COUNT(DISTINCT column_name) 语法
COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

SELECT COUNT(DISTINCT column_name) FROM table_name

ROUND()

ROUND 函数用于把数值字段舍入为指定的小数位数。(四舍五入)

SQL ROUND() 语法
SELECT ROUND(column_name,decimals) FROM table_name

参数

描述

解释

column_name

必需。

要舍入的字段。

decimals

必需。

规定要返回的小数位数。

SELECT ProductName, ROUND(UnitPrice,0) as UnitPrice FROM Products

MIN()

MIN 函数返回一列中的最小值。NULL 值不包括在计算中。

SQL MIN() 语法

SELECT MIN(column_name) FROM table_name

注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。