日期:2014-05-16  浏览次数:20464 次

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需要全部添加才能正常得出结果。

?