`

Hql的常用函数

    博客分类:
  • java
阅读更多
一、substring函數
此函數可以用在HQL語句的columns部分和where後面,主要目的可以對數據庫字段中的某數據進行按條件截取,並動態組合成自已想要的數據格式,具體使用方法如:
example: oldSid:812108M00003 -> newSid:08-M00003
hql = "select substring(oldSid,5, 2)+'-'+substring(oldSid,7,6) as newSid from Table";

substring()函數一般帶有三個參數,第一個為要格式化的源字段,第二個為開始執行的起始位置,(下標從臺開始),第三個參數為從開始位置起要截取幾位數據,所有上面語句的結果為:
newSid:08-M00003

另substring函數也可以用在where語句後面如:
hql = "from Table a where substring(a.description, 1, 3) = 'cat'";


二、子查詢的用法
假設現在有兩張表Company(公司表),Employee(員工表),關係一個公司有多個員工,所以一個company記錄應該對應多條employee紀錄.即在employee有一個 FK 指向Company的 PK.
condition:找出每一個公司中員工工資(pay)最高的那一位.
hql:
select (select max(e.pay) from c.Employee e) from Company c
note:select後面的子查詢必須寫在()中,
其運行後對應的sql語句為:
select
(select
max(e.pay)
from
Employee e
where
e.HSUID=c.HSUID) as col_0_0_
from
Company c;

hql中的子查詢也可以帶查詢條件如下面也可以寫成:
select (select max(e.pay) from a.employee e where e.name=:name) from company a
select
(select
max(e.pay)
from
Employee e
where
e.HSUID=c.HSUID and e.name = '01') as col_0_0_
from
Company c;


三、coalesce函数的用法

COALESCE
返回其参数中第一个非空表达式。

语法
COALESCE (expression [ ,...n ])

参数
expression

任何类型的表达式。
n

表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。  
返回类型
将相同的值作为 expression 返回。

注释
如果所有自变量均为 NULL,则 COALESCE 返回 NULL 值。

COALESCE(expression1,...n) 与此 CASE 函数等价:

CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL  
   
示例:表score代表某同学本次考试各科成绩的得分.结构如下:
語文     數學     英語
58        NULL     95
95         NULL     0
NULL      NULL      34
NULL      NULL      NULL
0           95       NULL
0          0        0
NULL       95      95
95         NULL     NULL

hql:
select a from score a where coalesce(a.chinese,a.math,a.english) = 95;
執行後結果為:
95         NULL     0
NULL       95      95
95         NULL     NULL

(3 rows affected)
第一行因為a.chinese(語文)不空,所以where a.chinese = 95;return false;
第三行因為a.english = 34,所以return false;
第五行因為a.chinese = 0;標誌也不為空,所以return false;

四. 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;


六.LOCATE函数的用法

locate函数返回第一个string在第二个string中的起始位置,如果第一个string或第二个string为空,则结果反回空(NULL),如果第一个字串中第二个中没有找见,则返回零(0),

语法介绍:
LOCATE( string1, string2 [, start] )

string1:
任何字串表达式,此字串作为一个字串对象去字串2中进行批配.

string2:
任何字串表达式,此字串包括第一个字串.

start:
从字串string2中搜寻string1是的起始位置,假如没有设置,或为NULL,或所赋值小于壹,则统一从1开始搜寻.

Examples:

DE>SELECT LOCATE( 'Peter', 'Peter Steve Tom' )DE>


七.CAST函数的用法

CAST 函数 [数据类型转换]

功能:
返回转换为提供的数据类型的表达式的值。
语法:

CAST(expression AS data type)

参数:
expression     要转换的表达式

data type       目标数据类型

用法:

如果未指定字符串类型的长度,数据库服务器将选择适当的长度。如果没有为十进制转换指定精度和小数位数,则数据库服务器将选择适当的值。

示例
下面的函数确保字符串被用作日期:
SELECT CAST( '2000-10-31' AS DATE )

计算表达式 DE>1 + 2DE> 的值,并将结果转换为单字符字符串。
SELECT CAST( 1 + 2 AS CHAR )

可以使用 CAST 函数缩短字符串:
SELECT CAST( 'Surname' AS CHAR(5) )



分享到:
评论

相关推荐

    HQL常用函数大全.docx

    ### HQL常用函数大全 #### 一、关系运算 在Hive SQL (HQL) 中,关系运算是处理数据查询的基础。以下列出的关系运算符帮助用户进行数据比对。 ##### 1. 等值比较 (`=`) **语法**:`A = B` **操作类型**:所有...

    HQL常用函数

    ### HQL常用函数详解 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者用类和属性名称来查询数据库,而不需要直接编写SQL语句。这大大简化了数据库操作的过程,并使得代码更加清晰易读。在...

    HQL语句函数汇总(汇集了hql语句中大部分常用的函数)

    汇集了hql语句中大部分常用的函数 ABS(n) 取绝对值数学函数 数学函数 JPAQL HQL ABS(column_name[数字类型对象属性])

    Hive函数大全.pdf

    在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,为...在实际使用中,结合HQL(Hive Query Language)的其他特性,可以实现复杂的数据处理任务。记住,合理运用这些函数可以提高数据处理效率和查询的准确性。

    全面解析HQL语句 非常详细直接的HQL语句的功能介绍

    HQL提供了标准SQL中的聚合函数,如`avg`, `count`, `max`, `min`, `sum`等,用于执行统计计算。例如,`select count(*) from Person`可以统计`Person`表中的记录总数。 ### 4. 多态查询 多态查询允许在不指定具体...

    常用的hql语句用法解析

    还有左外连接(`left outer join`)、右外连接(`right outer join`)和全连接(`full join`),但全连接在HQL中并不常用。简写形式如`join`和`left join`可用于内连接和左外连接。`fetch`连接允许在查询中初始化相...

    常用的HQL语句下载

    以下是一些常用HQL语句的使用与说明: 1. **HQL更新语句**: 更新操作允许您修改数据库中的对象属性。在示例中,第4行的HQL语句`update PhUser set realName=?`用于更新`PhUser`表中所有记录的`realName`字段。第5...

    Apache hive常用函数.zip

    本资料"Apache Hive常用函数.zip"包含了一份详尽的Apache Hive函数指南,涵盖了各种运算类别,如关系运算、数学运算、逻辑运算、数值运算以及日期函数和条件函数。以下是对这些函数的详细介绍: 1. **关系运算**:...

    hql语句 使用大全

    ### HQL语句使用大全 HQL(Hibernate Query Language)是一种...以上介绍了HQL的基础语法及常用操作,HQL的强大之处在于其灵活性和易用性,掌握了这些基本用法后,开发人员可以根据具体需求编写出更复杂的查询语句。

    Hibernate之HQL查询

    HQL支持常用的聚合函数,如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`,可以用于统计和计算。例如: ```sql SELECT COUNT(s) FROM Student s WHERE s.major = '计算机科学' ``` 这个查询将返回计算机科学专业学生的数量...

    Hive常用函数

    下面将详细讨论 Hive 中的一些常用函数及其应用场景。 1. **函数分类**: - **简单函数**:这些函数处理单条记录,包括关系运算、数学运算、逻辑运算、数值计算、类型转换、日期函数、条件函数、字符串函数等。 -...

    常用易懂,易会HQL查询

    本文将深入探讨“常用易懂,易会”的HQL查询,帮助你快速上手并熟练掌握这一技能。 1. **HQL基础概念** HQL是Hibernate提供的面向对象的查询语言,与SQL类似,但更加面向对象,减少了数据库方言的差异,提高了代码...

    Hql详解[文].pdf

    - Hql支持常用的聚集函数,如`sum()`、`avg()`、`max()`、`min()`、`count()`,例如`String hql = "Select count(*) FROM User as user";`返回用户总数。 - 需要注意的是,`count()`返回的是`Long`类型,而其他...

    常用的HQL语句!!!!

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的数据的语言,它是SQL的一个面向对象的版本。HQL允许开发者以对象的方式编写查询,而不是直接操作数据库表格。以下是一些常见的HQL...

    Spring--HQL-chaxun.zip_HQL

    在这个名为“Spring--HQL-chaxun.zip_HQL”的压缩包中,包含的文档“Spring中常用的HQL查询方法.doc”会详细讲解如何在Spring环境中使用HQL进行数据查询。 1. **HQL的基本概念**: HQL允许开发者用类和属性名称来...

    HQL实用技术

    - **常用函数**:`lower()` 用于转换为小写,`year()` 用于获取日期的年份。 5. **ORDER BY子句**:用于对查询结果进行排序。 - **语法**: ```java from Emp order by hireDate asc; from Emp order by ...

    Hibernate hql查询语法总结

    HQL支持SQL的连接查询,包括内连接、左外连接、右外连接和全连接(不常用)。例如,使用内连接: ```java select a.id, b.id from A a inner join B b on a.id = b.id ``` 等价于SQL中的`INNER JOIN`。查询结果通常...

    hql中常用函數介紹

    以下是对HQL中常用的一些函数的详细介绍: 一、substring函数 substring函数在HQL中用于对数据库字段的字符串进行截取。它可以在`columns`部分或`where`子句后使用,帮助我们动态地构造所需的数据显示格式。例如,...

    Hibernate 经常用的一些HQL语句

    下面将详细介绍HQL在实际开发中常用的几种用法。 #### 1. 基本查询 - **全表查询**:`String hql = "from User";` 这条语句用于查询User表中的所有记录。 - **条件查询**:如`String hql = "from User where ...

    hive函数大全(举例和目录)

    本文档将详细介绍Hive中各种常用的函数及其用法,并通过示例帮助理解每个函数的功能。 #### 一、关系运算 ##### 1. 等值比较 `=` 用于比较两个表达式的值是否相等。 **示例**: ```sql SELECT * FROM table WHERE ...

Global site tag (gtag.js) - Google Analytics