免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5554 | 回复: 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
12 [报告]
发表于 2006-04-13 15:09 |只看该作者
请问如何查看表结构、索引之类的,
就象ORACLE里的DESC TABLE那样?

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

Try again, it seems is OK.
I find SQL server, MySQL and DB2/400 is different in the expression.

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

回复 1楼 xf001 的帖子

收了!

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

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

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

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

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

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

论坛徽章:
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语句即可
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP