当前位置:网站首页>【sql】不同库查询前几条记录用法
【sql】不同库查询前几条记录用法
2022-08-10 03:43:00 【掘金者说】
SQL在不同数据库中查询前几条记录的用法分类
方法
/** * 查询前几条记录SQL * <p> * 1. ORACLE * SELECT * FROM TABLE1 WHERE ROWNUM <= N * 4. SQL SERVER * SELECT TOP N * FROM TABLE1 * 6. MYSQL * SELECT * FROM TABLE1 LIMIT N * 8.POSTGRES * SELECT * FROM TABLE LIMIT N * * @param selectSql * @param dbType * @return */
public static String selectTopNum(String selectSql, String dbType) {
int limitNum = 1000;
if (StringUtils.isBlank(dbType)) {
dbType = DbTypeEnum.MYSQL.getCode();
}
String sqlTemp = "";
switch (DbTypeEnum.getEnumByCode(dbType)) {
case POSTGRESQL:
case MYSQL:
//WITH TEMP_A AS (select * from TABLE1) SELECT * FROM TEMP_A LIMIT 10
sqlTemp = "WITH TEMP_A AS ({0}) SELECT * FROM TEMP_A LIMIT {1}";
break;
case DM:
case OSCAR:
case KINGBASE86:
case KINGBASE8:
case ORACLE:
//WITH TEMP_A AS (SELECT * FROM TABLE1) SELECT * FROM TEMP_A WHERE ROWNUM <= 100
sqlTemp = "WITH TEMP_A AS ({0}) SELECT * FROM TEMP_A WHERE ROWNUM <= {1}";
break;
case SQLSERVER:
//WITH TEMP_A AS (SELECT * FROM TABLE1) SELECT TOP 100 * FROM TEMP_A
sqlTemp = "WITH TEMP_A AS ({0}) SELECT TOP {1} * FROM TEMP_A";
break;
default:
}
selectSql = MessageFormat.format(sqlTemp, selectSql, limitNum);
return selectSql;
}
附加
边栏推荐
猜你喜欢
随机推荐
如何将 @Transactional 事务注解运用到炉火纯青?
2022/8/9
TCP协议之《发送缓存控制tcp_notsent_lowat》
mysqldump和XBK备份
ZZULIOJ:1020: 两整数排序
golang go get 时提示 no Go files in xxx
TCP协议之《ACK pingpong交互模式详解》
学习总结week4_2正则
shell三剑客之sed命令
Qt 线程常用同步方式
2022华数杯思路分析
GBase 8s打开工具就报错“配置文件有误” !!!为什么
TCP协议之《自动阻塞CORK控制》
Spark面试问题总结
order by注入与limit注入
TCP协议之《ACK报文限速》
【Verilog数字系统设计(夏雨闻)5-------模块的结构、数据类型、变量和基本运算符号1】
数据库学习真难,头大,有偿提问
文件操作【c语言】
Did not detect default resource location for test class xxxx