林仕鼎谈架构设计与架构师
2013-05-14 14:43
225 查看
笔者日常工作中常用到的sql语句,现总结如下,留作日后查看。 1、按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Load_Count,T.Read_Count) desc 2、取两列之和 select t.*,(nvl(T.Load_Count,0)+nvl(T.Read_Count,0 )) as c FROM t_doc T order by c desc 3、取两列字符串连接 select T.Load_Count||T.Read_Count FROM t_doc T 4、获取oracle数据库当前用户下所有表名和表名的注释 select a.TABLE_NAME,b.COMMENTS from user_tables a,user_tab_comments b WHERE a.TABLE_NAME=b.TABLE_NAME order by TABLE_NAME 5、两列结果合并为一列输出(两列数据类型必须一样) select a from tb union all select b from tb 6、将一列多行拼接成一行 select wmsys.wm_concat(name) from table_name //wmsys.wm_concat()拼接字段 以逗号分开 7、 不是 SELECTed 表达式Oracle 数据库,执行下面语句出现错误“ORA-01791: 不是 SELECTed 表达式”:
select distinct t.name from auth_employee t order by t.auth_employee_id asc
原来:SELECT语句中含有DISTINCT关键字或者有运算符时,排序用字段必须与SELECT语句中的字段相对应。
网上搜到解释如下:
在ORDER BY中指定多个列,结果将先按照子句中的第一列排序,然后第二个,依此类推。
在SELECT中未出现的列名也可用于ORDER BY 子句中,只要TABLE中有就行。
但如果SELECT子句中出现了DISTINCT关键字,则只能用出现过的列名,
而且如果SELECT子句中使用了任何运算符,在ORDER BY 子句中必须保持和SELECT子句中表达式完全一致,否则出现错误:“ORA-01791: 不是 SELECTed 表达式”。
8、查询数据库表的建表时间
SELECT OBJECT_NAME, CREATED FROM USER_OBJECTS WHERE object_type = 'TABLE' ORDER BY CREATED DESC
9、查询序列的当前值
select ANALYSIS_FIX_SEQ.currval from dual (注:此sql只能在nextval之后才可以使用)
select last_number from User_Sequences where sequence_name='ANALYSIS_FIX_SEQ'
本文出自 “IT小窝” 博客,请务必保留此出处http://lslvxy.blog.51cto.com/6779853/1323300
相关文章推荐
- 讲师秀之7:林仕鼎谈架构设计与架构师
- 林仕鼎谈架构设计与架构师
- 林仕鼎谈架构设计与架构师
- 讲师秀之7:林仕鼎谈架构设计与架构师
- 林仕鼎谈架构设计与架构师
- 林仕鼎:架构设计与架构师
- 讲师秀之7:林仕鼎谈架构设计与架构师
- 林仕鼎谈架构设计与架构师
- 林仕鼎谈架构设计与架构师
- 林仕鼎谈架构设计与架构师
- <熟练A段架构师思考 & 精通B段架构设计>_Workshop课程 推荐
- 程序架构的优化和设计,架构师必须悟透的事情
- 【转】关于架构师和架构设计的一些常见误解(3)
- 通向架构师的道路(第二十六天)漫谈架构与设计文档的写作技巧
- ThoughtWorks架构师Neal Ford:演化架构和紧急设计经验谈
- 专访架构师周爱民:谈企业软件架构设计
- 林仕鼎:架构设计的一些思考
- 架构师之道:面向组件的Web架构设计
- 专访架构师周爱民:谈企业软件架构设计
- 【架构设计】软件架构师应该知道的97件事