SQL Server里的 ISNULL 与 ASP 中的 IsNull不同,SQL Server 中有两个参数,语法:
ISNULL(check_expression, replacement_value)
- check_expression 与 replacement_value 数据类型必须一致
- 如果 check_expression 为 NULL,则返回 replacement_value
- 如果 check_expression 不为 NULL,则返回 check_expression
NULLIF 用于检查两个表达式,语法:
NULLIF(expression, expression)
- 如果两个 expression 相等,则返回 NULL,该 NULL 为第一个 expression 的数据类型
- 如果两个 expression 不相等,则返回第一个 expression
示例程式:
函数表score代表某学生某此考試的數學和中文成績.數據如下:
中文 數學
25 36
15 59
68 68
85 45
96 95
現要查詢某同學的兩門成績,要求分數不相等,如相等,則要求中文成績要超過85分以上.
select a from Score a where nullif(a.chinese,a.math) >= 85;
返回結果:
85 45
最後一條雖然第門功課成績都是well,但由於a.chinese == a.math,所以函數nullif會返回NULL,
五. 于日期有关的数据函数(EXTRACT)
EXTRACT
ANSI标准中EXTRACT函数允许选取日期和时间中任意段或任意间隔的值,Teradata中EXTRACT函数支持日期数据中选取年.月.日.从时间数据中选取小时.分钟和秒,同时Hibernate也支持相应的函数运算.
示例:
SELECT DATE; 96/11/07
SELECT EXTRACT(YEAR FROM DATE); 1996
SELECT EXTRACT(MONTH FROM DATE+30); 12
SLEECT EXTRACT(DAY FROM DATE+2); 09
SELECT TIME; 14:52:32
SELECT EXTRACT(HOUR FROM TIME); 14
SELECT EXTRACT(SECOND FROM TIME+30); INVALID TIME
hql:
select extract(second from a.orderTime) from ApOrderRequest a;
则会得到当前orderTime时间段的秒.比如12;