免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5553 | 回复: 11
打印 上一主题 下一主题

整理几个常用的sql内部函数[参照红皮书] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-18 09:19 |只看该作者 |倒序浏览

  1. 1.Avg             计算平均值
  2. Example: SELECT AVG(PRSTAFF)
  3. FROM PROJECT
  4. WHERE DEPTNO ='D11'

  5. 2.Count             计算符合条件的纪录行数
  6. Example1: SELECT COUNT(*)
  7. FROM EMPLOYEE
  8. WHERE SEX ='F'
  9. Example2: SELECT COUNT(DISTINCT WORKDEPT)
  10. FROM EMPLOYEE
  11. WHERE SEX='F'

  12. 3.Max            返回一个数据集里的最大值
  13. Example: SELECT MAX(SALARY) /12
  14. FROM EMPLOYEE

  15. 4.min             返回一个数据集里的最小值
  16. Example: SELECT MIN(SALARY) /12
  17. FROM EMPLOYEE

  18. 5.SUM             求和
  19. EXAMPLE: SELECT SUM(BONUS)
  20. FROM EMPLOYEE
  21. WHERE JOB ='CLERK'

  22. 6. ABS or ABSVAL          计算绝对值
  23. EXAMPLE: SELECT ABS(BONUS)
  24. FROM EMPLOYEE
  25. WHERE JOB ='CLERK'

  26. 7. CEILING                 小数位进位
  27. EXAMPLE: SELECT CEILING( 3.5),
  28. CEILING( 3.1),
  29. CEILING(-3.1),
  30. CEILING(-3.5),
  31. FROM TABLEX
  32. This example returns:
  33. 4.0 4.0 -3.0 -3.0


  34. 8.CONCAT                          字符串连结
  35. EXAMPLE:SELECT CONCAT(FIRSTNME, LASTNAME) AS FULLNAME
  36. FROM AUTHOR


  37. 11.substring or substr    字符串截取
  38. Example:
  39. SELECT * FROM PROJECT
  40. WHERE SUBSTR(PROJNAME,1,10) ='OPERATION '
  41. 挑选字段PROJNAME前十位等于常量'OPERATION '的所有记录

  42. 12.Round          四舍五入
  43. Example1:
  44. SELECT ROUND(873.726, 2),
  45. ROUND(873.726, 1),
  46. ROUND(873.726, 0),
  47. ROUND(873.726, -1),
  48. ROUND(873.726, -2),
  49. ROUND(873.726, -3),
  50. ROUND(873.726, -4)
  51. FROM TABLEX
  52. 结果:
  53. 0873.730 0873.700 0874.000 0870.000 0900.000 1000.000 0000.000

  54. Example2:
  55. SELECT ROUND( 3.5, 0),
  56. ROUND( 3.1, 0),
  57. ROUND(-3.1, 0),
  58. ROUND(-3.5, 0)
  59. FROM TABLEX
  60. 结果:
  61. 4.0 3.0 -3.0 -4.0

  62. 13.UCASE or UPPER        转换为大写字符串

  63. UCASE('abcdef')  结果为’ABCDEF’

  64. 14. LOWER or LCASE       转换为小写字符串

  65. lower('aBcDef')  结果为’abcdef

  66. 15.locate                                返回源串在目标串出现的的一个位置
  67. EXAMPLE
  68. SELECT LOCATE(' FF C','FF FF CCC',1) FROM CBB721

  69. 16. POSITION or POSSTR    返回源串在目标串出现的的一个位置
  70. EXAMPLE1:半角情况
  71. SELECT POSITION('D' IN 'FFCD') FROM CBB721
  72. EXAMPLE2:混合情况
  73. SELECT POSSTR('FFC DSF ',' F ') FROM CBB721

复制代码

论坛徽章:
0
2 [报告]
发表于 2006-01-18 09:21 |只看该作者

  1. CURTIME                   返回系统时间
  2. CURDATE                   返回系统日期
  3. DATE                       返回一个日期型值
  4. EXAMPLE:   DATE(‘1980-12-07’)

  5. DAY                          返回参数的日期值部分
  6. EXAMPLE:DATE1等于2000-03-15
  7. DATE2等于1999-12-31
  8. DAY (DATE1-DATE2)
  9. 结果15

  10. DAYOFMONTH                返回参数日期部分
  11. AMC等于’2006-01-01’
  12. DAYOFMONTH(AMC)
  13. 结果
  14. 1

  15. DAYOFWEEK                  返回星期值1~7,1-星期日;7-星期六
  16. AMC等于’2006-01-01’
  17. DAYOFMONTH(AMC)
  18. 结果
  19. 1

  20. DAYOFYEAR                返回值1~366
  21. AMC等于’2006-02-01’
  22. DAYOFMONTH(AMC)
  23. 结果
  24. 32


  25. DAYS                           返回参数日期与’0001-01-01’的天数差
  26. EXAMPLE:
  27. AMC1等于’2006-02-01’
  28. AMC2等于’2006-01-01’

  29. DAYS(AMC1)-DAYS(AMC2)
  30. 结果
  31. 31

  32. HOUR                         返回参数小时部分,参数为时间或时间戳类型

复制代码

论坛徽章:
0
3 [报告]
发表于 2006-01-18 10:49 |只看该作者
在db2中有把數字轉換為日期的函數嗎﹖
例如在﹕ms sql中可以﹕select cast(4567 as datetime)
則顯示出日期。
db2中好象也不能用select date('1980-10-10')的形式﹐
是不是一定要from table的格式。望告知。

论坛徽章:
0
4 [报告]
发表于 2006-01-18 10:54 |只看该作者
原帖由 hhmyz 于 2006-1-18 10:49 发表
在db2中有把數字轉換為日期的函數嗎﹖
例如在﹕ms sql中可以﹕select cast(4567 as datetime)
則顯示出日期。
db2中好象也不能用select date('1980-10-10')的形式﹐
是不是一定要from table的格式。望告知。


1。环境应该是DB2/400

2。个人看法:能组成一个有效SQL语句即可

论坛徽章:
0
5 [报告]
发表于 2006-04-12 09:33 |只看该作者
有没有取前N条记录的命令的,类似top,first的关键字?

论坛徽章:
0
6 [报告]
发表于 2006-04-12 11:02 |只看该作者
select * from pf1 where sex = '1' fetch first 20 rows only

取满足条件的前二十条记录

论坛徽章:
0
7 [报告]
发表于 2006-04-12 11:21 |只看该作者
楼上是使用游标时的写法吧
在STRSQL里不行的

论坛徽章:
0
8 [报告]
发表于 2006-04-12 12:56 |只看该作者
mark

论坛徽章:
0
9 [报告]
发表于 2006-04-12 13:01 |只看该作者
不错、不错。。。

论坛徽章:
0
10 [报告]
发表于 2006-04-12 13:11 |只看该作者

回复 1楼 xf001 的帖子

收了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP