atitit。mssql sql server 转换mysql 及 分页sql ast的搭建
atitit。mssql sql server 转换mysql 及 分页sql ast的搭建
2. 思路::mssql sql >>ast>>mysql 1
4. Mssql2MysqlConvertor (proj:wechatAdm4propt 2
1. 主要的的转换::函数的转换,分页的转换
2. 思路::mssql sql >>ast>>mysql
3. sql主要的如下:::
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
SELECT groupid,
groupname,
convert(varchar, createtime, 120) AS createtime,
weixinuserCount,
remark
FROM
(SELECT row_number() over( ORDER BY createtime DESC) AS rowNum, d1.groupid,
d1.groupname,
d1.createtime,
d1.remark,
(SELECT count(d2.UserID)
FROM t_mb_weixinuser d2
WHERE d2.groupid=d1.groupid)AS weixinuserCount
FROM t_mb_group d1
WHERE 1=1)
AS groups
WHERE rowNum BETWEEN 1 AND 10
4. Mssql2MysqlConvertor (proj:wechatAdm4propt
public class Mssql2MysqlConvertor {
@Inject
SqlAstBuilderP32 astBldr;
SqlAstP32 ast;
/**
* @author attilax 老哇的爪子
* @since p33 j_t_37
*/
public static void main(String[] args) {
String txt = filex.read(pathx.classPath() + "/mssql1.sql");
txt = strUtil.replaceEnterChar2space(txt);
txt = txt.replaceAll("row_number.*?,", "");
Mssql2MysqlConvertor x = new Mssql2MysqlConvertor();
String sql_mysql = x.convert(txt);
System.out.println(JsonX.toJsonStrO88(x.ast));
System.out.println(sql_mysql);
}
/**
* @author attilax 老哇的爪子
* @return
* @since p33 m_j_45
*/
private String convert(String txt) {
)
.toString();
page_s = strUtil.replaceDoubleSpace(page_s);
String[] a = page_s.toUpperCase().trim().split("BETWEEN");
].toLowerCase().trim().split("and");
SqlPageParam p = new SqlPageParam();
;
].trim());
ast = new SqlAstP32();
, txt.indexOf(page_s));
ast.pagePart = p;
if (ast.preOther.trim().toLowerCase().endsWith("where"))
ast.preOther = ast.preOther + " 1=1 ";
return ast.preOther + " limit " + p.startIndex + "," + p.pagesize;
}
atitit。mssql sql server 转换mysql 及 分页sql ast的搭建的更多相关文章
- 从SQL Server到MySQL,近百亿数据量迁移实战
从SQL Server到MySQL,近百亿数据量迁移实战 狄敬超(3D) 2018-05-29 10:52:48 212 沪江成立于 2001 年,作为较早期的教育学习网站,当时技术选型范围并不大:J ...
- 数据库 SQL Server 到 MySQL 迁移方法总结
最近接手一起老项目数据库 SQL Server 到 MySQL 的迁移.因此迁移前进行了一些调查和总结.下面是一些 SQL Server 到 MySQL 的迁移方法. 1. 使用 SQLyog 迁移 ...
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐) vs lang ...
- sql server vs mysql
1.中文: my.ini [mysqld] character-set-server=utf8 character-set-client=utf8 data\testdb\db.opt default ...
- SQL Server和MySQL数据库
导读:接下来的网上商城的项目,需要用到MySQL数据库了.这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它.本篇博客,先介绍SQL Server的基本内容, ...
- 通过sql server 连接mysql
图文:通过sql server 连接mysql 1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql.com/downloads/con ...
- Sql Server 2012 的新分页方法分析(offset and fetch) - 转载
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...
- 数据库如何从SQL server转换到SQLite
我之前用的是SQL server数据库,但是客户那里觉得安装这个大的数据库比较卡,说是导致蓝屏了,硬往SQL server上赖,没有办法客户是上帝么,给他换个小点的数据库吧!考虑Access,不行这个 ...
- 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...
随机推荐
- wsgi & cgi的一些概念解释
可以看这里 https://www.zhihu.com/question/19998865 如何理解 CGI, WSGI?修改 写补充说明 举报 添加评论 分享 • 邀请回答 默认排序 按时间排序 1 ...
- PowerDesigner教程系列(三)概念数据模型
目标: 本文主要介绍属性的标准检查约束.如何定义属性的附加检查. 一.定义属性的标准检查约束 标准检查约束是一组确保属性有效的表达式.在实体属性的特性窗口,打开如图所示的检查选项卡. 在这个选项卡可以 ...
- C++标准库 bitset
本文地址:http://www.cnblogs.com/archimedes/p/cpp-bitset.html,转载请注明源地址. 有些程序要处理二进制位的有序集,每个位可能包含 0(关)1(开)值 ...
- tcp/ip协议中的SYN, ACK的数值变化
还需要论述一下seq.ack表示什么意思,应该以什么样的角度去理解这两个序列号. sequence number:表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data st ...
- C#基础视频教程4.3 如何编写简单的计算器
我们接着往下改,为了让这个计算器更加实用,我们要像官方的计算器一样可以接着计算(你算出来一笔数据之后,可以接着累加累减,我们暂时不考虑加括号,优先级之类的,因为绝大部分情况下我们打开计算器就是为了进行 ...
- STL - 算法 - 普通拷贝
list<, , , , , , , , }; vector<int> coll2; cout << "** collection 1: **" &l ...
- 总结一些Android好用的开源库
1.android-viewFlow https://github.com/pakerfeldt/android-viewflow 2. android-viewbadger https://gith ...
- Android内存泄漏分析实战
内存泄漏简单介绍 java能够保证当没有引用指向对象的时候,对象会被垃圾回收器回收.与c语言自己申请的内存自己释放相比,java程序猿轻松了非常多.可是并不代表java程序猿不用操心内存泄漏.当jav ...
- js Object.defineProperty 使用
语法 Object.defineProperty(obj, prop, descriptor) 参数说明: obj:必需.目标对象 prop:必需.需定义或修改的属性的名字descriptor:必需. ...
- Java 同步器
CyclicBarrier是什么 CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障时,所以被阻塞的线程才能继续执行.Cycli ...