Oracle语法记录

1.四舍五入保留两位小数

select cast(123456 as number(18,2)) as aa from dual;

2.生成数据字典

select m.*, decode(n.column_name, null, '', 'Y') 主键, a.nullable 非空
  from (select t.table_name 表代码,
               t2.comments 表名称,
               t.column_name 字段代码,
               t1.comments 字段名称,
               t.data_type 字段类型,
               decode(t.data_type, 'NUMBER', T.DATA_PRECISION, T.DATA_LENGTH) 字段长度,
               T.DATA_SCALE 小数位数
          from user_tab_cols t, user_col_comments t1, user_tab_comments t2
         where t.table_name = t1.table_name
           and t.column_name = t1.column_name
           and t.table_name = t2.table_name) m
  left join (select t3.table_name, t4.column_name
               from user_constraints t3, user_cons_columns t4
              where t3.constraint_name = t4.constraint_name
                and t3.constraint_type = 'P') n on m.表代码 = n.table_name
                                               and m.字段代码 = n.column_name
  left join (select t5.table_name, t5.column_name, t5.nullable
               from user_tab_columns t5) a on m.表代码 = a.table_name
                                          and m.字段代码 = a.column_name
 order by m.表代码, M.字段代码

3.多表数量查询
最后一张表不加 union all

select '表名',count(*) from 表名 union all

4.数据库中存储的性别是1和2,查询的时候怎么让1和2变成男,女显示出来

select case when 性别 = 1 then '男' when  性别 = 2 then '女' else '不男不女' end from table;

5.查询所有用户

select * from all_users;

6.空值放在末尾

select * from 表代码 t order by 过滤字段 nulls last

7.查看Oracle数据库服务端字符集

select * from nls_database_parameters

8.少量数据误删除恢复语句,时间为要回滚的时间节点

select * from xbbf_dydb_gbjl as of timestamp to_timestamp('2020-01-07 23:30:00','yyyy-mm-dd HH24:MI:SS') 
原文地址:https://www.cnblogs.com/xianyao/p/11804492.html