eddik 发表于 2016-11-15 08:13:12

DB2常用函数、语句介绍

  1.VALUE函数




语法:VALUE(EXPRESSION1,EXPRESSION2)


VALUE函数是用返回一个非空的值,当其第一个参数非空,直接返回该参数的值,如果第一个参数为空,则返回第一个参数的值。

eg:
--表示如果T1.ID为空,则返回空串,如果T1.ID不为空,则返回T1.ID。
SELECT VALUE(ID,'') FROM T1


 

2.DATE函数






SQL Server 使用下列数据类型在数据库中存储日期或日期/时间值:


[*]DATE - 格式 YYYY-MM-DD
[*]DATETIME - 格式: YYYY-MM-DD HH:MM:SS
[*]SMALLDATETIME - 格式: YYYY-MM-DD HH:MM:SS
[*]TIMESTAMP - 格式: 唯一的数字


  如果不涉及时间部分,那么我们可以轻松地比较两个日期!
  假设我们有下面这个 "Orders" 表:



OrderId
ProductName
OrderDate


1
computer
2008-12-26


2
printer
2008-12-26


3
electrograph
2008-11-12


4
telephone
2008-10-19


OrderId ProductName OrderDate
1
computer
2008-12-26
2
printer
2008-12-26
3
electrograph
2008-11-12
4
telephone
2008-10-19
  现在,我们希望从上表中选取 OrderDate 为 "2008-12-26" 的记录。
  我们使用如下 SELECT 语句:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'
  则可取出两条记录。如果orderdate为2008-12-26 16:23:55(timestamp格式的话),再用上面的语句就查询不出来我们的结果。这是由于该查询不含有时间部分的日期。
  所以需要将语句改写为:

SELECT * FROM Orders WHERE (date)OrderDate='2008-12-26'



OrderId
ProductName
OrderDate


1
computer
2008-12-26


3
electrograph
2008-12-26




OrderId
ProductName
OrderDate


1
computer
2008-12-26


3
electrograph
2008-12-26

  3.GROUP BY语句


  聚合语句,注意在使用的时候需要把聚合的语句都写日group by 中才可以正常使用

  


select a.username name,value(b.branchname,'分公司') branchname,count(a.vid) num
from sdtk.statistics a,sdtk.rtrn_userinfo b
where a.username = b.username
group by a.username,b.branchname
  注:a.username,b.branchname需要全部添加才能正常得出结果。
  4.char()函数:


  CHAR()  返回日期时间型,字符串,整数,十进制或双精度浮点数的字符串表示.  SELECTCHAR(SALARY,',')FROMBSEMPMS
  5.trim()函数


  TRIM()  删除字符串的空格.  SELECTRTRIM('COMMENT')FROMBSEMPMS;
页: [1]
查看完整版本: DB2常用函数、语句介绍