hql中常用函數介紹<二>

四. ISNULL 函数和 NULLIF 函数

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;

转载于:https://my.oschina.net/cmw/blog/32611

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值