注意:仅用于技术讨论,切勿用于其他用途,一切后果与本人无关。
都知道limit函数适用于mysql数据库,在Oracle数据库中无法使用,当需要使用到分页查询时,我们可以用其他的方法进行代替。
Oracle数据库中区分单双引号
方法一:不等于法(通用法)
select * from user_tab_columns where table_name='ADMIN' and rownum = 1 and column_name<>'UNAME'
使用不等于号进行取反,这里的rownum=1输出的是一行,想输出两行可rownum<3.
还可以使用not in来进行排除
上面这种写法,如果排除的表名多了,语句就会很长,还有一种更好的办法,使用not in
关键字,只需要把要排除的表名直接写进去就好了
select * from user_tab_columns where table_name='ADMIN' and rownum = 1 and column_name not in('ADMIN','MD5')
方法二:别名法
别名只能用于字段名,不可以用于表名
select * from (select column_name,rownum n from user_tab_columns where table_name= 'ADMIN') where n=2
rownum n 是别名,括号里面是子查询,我觉得这个语句是先执行后面的where,然后再对里面的进行查询。
扩展Oracle相关的查询语句:
select * from all_tables 查询出所有的表
select * from user_tables 查询出所有当前用户创建的表
select * from all_tab_columns 查询出所有的字段
select * from user_tab_columns 查询出所有当前用户创建的表
select * from v$version 查出版本