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 ...
随机推荐
- pytest文档7-pytest-html生成html报告
前言 pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告.兼容Python 2.7,3.6 pytest-html 1.github上源码地址[https://github. ...
- lua string介绍
1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(s ...
- cas 获取session中的用户信息
<%Object object =request.getSession().getAttribute("_const_cas_assertion_");Assertion a ...
- JavaScript获得页面区域大小的代码
var Client = { viewportWidth: function() { return self.innerWidth || (document.documentE ...
- FormBorderStyle为None的时候如何拖动窗体
//为DllImport导出命名空间, using System.Runtime.InteropServices; public partial class Form1 : System.Window ...
- Git 提示fatal: remote origin already exists
Git 提示fatal: remote origin already exists 错误解决办法 最后找到解决办法如下: 1.先删除远程 Git 仓库 $ git remote rm origin 2 ...
- Android应用更新自动检测下载
由于Android项目开源所致,市面上出现了N多安卓软件市场.为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们也必须到安卓市场上进行更新,给我们增加了工作量.因此我们有必 ...
- 解决github push错误The requested URL returned error: 403 Forbidden while accessing(转)
github push错误: git push error: The requested URL returned error: 403 Forbidden while accessing https ...
- 〖Linux〗通过USB连接,共享Linux上的网络,使用Android手机上网。
1. Android手机上打开USB共享 2. Linux上修改USB0的ip地址并启用 sudo ifconfig usb0 192.168.42.127 up 3. Android手机上修改路由表 ...
- java web 中的MVC
M:相当于Bean V:jsp C:servlet 当客户端发来请求,servlet响应请求处理请求,并把要发送给客户端的数据封装到Bean中,然后通过转发,将这个封装好了数据Bean送给jsp,js ...