1:sqlserver2008与mysql兼容性问题2:groupby 组函数
group by:别给我这么写select * from T_STANDARD_SYSTEM group by SYSTEM_ID order by SYSTEM_ID虽然mysql支持但是大部分数据库不支持,更改数据库时能
搞死人。可以将*中的每一项用max()函数包围起来。
2:sqlserver2008与mysql兼容性问题2:order by groupby 组函数
select COUNT(*) from T_ASSESS_ASSIGN order by ID在sqlserver中行不通,消息 8127,级别 16,状态 1,第 1 行
ORDER BY 子句中的列 "T_ASSESS_ASSIGN.ID" 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
select COUNT(*) from T_ASSESS_ASSIGN这个可以。select COUNT(*) from T_ASSESS_ASSIGN group by id order by ID这个也可以。
也就是在sqlserver中有order by 有聚合函数就必须有groupby
而在mysql中两条都行的通。
3:sqlserver2008与mysql兼容性问题3:排序问题
select * from ( select * ,ROW_NUMBER() as rowNum from T_SYS_MESSAGE where 1=1 and USER_TO = ? and USER_ID = ? order by state desc,send_time desc) as temp where temp.rowNum between 0 and 10];'ROW_NUMBER' 附近有语法错误,需要 'OVER'
使用例子:
public Page find(String arg0, Object[] params, int pageSize, int curPage) {
String sql = "select count(*) " + arg0.substring(arg0.indexOf("from"));
//用于sqlserver分页时的over函数。如果sql中不带排序则按自然顺序排序,否则按原来的排序方式。
String tem = "order by 1";
if(sql.contains("order") || sql.contains("ORDER")){
sql = sql.substring(0,sql.toLowerCase().indexOf("order"));
tem = arg0.substring(arg0.toLowerCase().indexOf("order"));
}
===============================================================
if("sqlserver".equals(dbType.trim().toLowerCase())){
arg0 = "select * from ( " + arg0.substring(0,arg0.indexOf("from")) +
" ,ROW_NUMBER() " + "OVER(" + tem + ") as rowNum "
+ arg0.substring(arg0.indexOf("from")) + ") as temp where temp.rowNum between "
+ pageSize * (curPage -1) + " and " + pageSize * curPage;
System.out.println("++++++++++" + arg0);
}
select * from ( select * ,ROW_NUMBER() OVER(order by state desc,send_time desc) as rowNum from T_SYS_MESSAGE where 1=1 and USER_TO = ? and USER_ID = ? order by state desc,send_time desc) as temp where temp.rowNum between 0 and 10
消息 1033,级别 15,状态 1,第 3 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
select * from ( select * ,ROW_NUMBER() OVER(order by state desc,
send_time desc) as rowNum from T_SYS_MESSAGE where 1=1
) as temp where temp.rowNum between 0 and 10
SELECT SYSTEM_ID,
MAX(SYSTEM_NAME) SYSTEM_NAME,
MAX(SYSTEM_ABRIDGE) SYSTEM_ABRIDGE,
MAX(SUB_SYSTEM_ID) SUB_SYSTEM_ID,
MAX(SUB_SYSTEM_NAME) SUB_SYSTEM_NAME,
MAX(CUSTOM_SYSTEM_ID) CUSTOM_SYSTEM_ID,
MAX(CUSTOM_SYSTEM_NAME) CUSTOM_SYSTEM_NAME FROM T_STANDARD_SYSTEM GROUP BY SYSTEM_ID ORDER BY SYSTEM_ID
分享到:
相关推荐
CnPlugin_1.5.1 解决win10 pl/sql 输入法卡顿 兼容性问题
解决VC6.0软件中的一些不兼容问题
(Microsoft SQL Server 2005 向后兼容组件) SQL Server Backward Compatibility 包中包含 最新版本的 Data Transformation Services 2000 运行时 (DTS)、SQL 分布式管理对象 (SQL-DMO)、 决策支持对象 (DSO) 和 ...
sql2005向后兼容组件32位/64位 SQLServer2005_BC.msi SQLServer2005_BCx64.msi
图文解析SQL Server 2005与2000兼容性图文解析SQL Server 2005与2000兼容性图文解析SQL Server 2005与2000兼容性
SQL编程规范 一、sql书写规范: 二、书写优化性能建议 三、其他经验性规则 一、sql书写规范: 1、sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。 2、连接符or、in、and、以及=、...
资深开发DBA对Oracle SQL编写规范的总结
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的...本文是Hive的开发规范,包括从网上搜集的一些内容,也包括在工作中总结的,以及在书中整理的点。
SQL规范化查询语句练习题SQL规范化查询语句练习题.rar
sql脚本提交规范sql脚本提交规范sql脚本提交规范sql脚本提交规范
编码规范--SQL语言规范
SQL Server编码规范SQL Server编码规范SQL Server编码规范SQL Server编码规范
讲述sql的优化 在于如何不浪费空间的情况下正常的使用
Sql Prompt兼容Sql Server2019和VS2019下载
X86/X64 SQLServer2005_BC_x32.msi SQLServer2005_BC_x64.msi
SQL Server 2005升级时的兼容性级别检查.pdf
sql 书写规范 让你的sql更标准 sql 书写规范 让你的sql更标准 sql 书写规范 让你的sql更标准
win7 64位安装sql2008 兼容问题解决win7 64位安装sql2008 兼容问题解决