atitit。mssql sql server 转换mysql  及 分页sql ast的搭建

1. 主要的的转换::函数的转换,分页的转换 1

2. 思路::mssql sql >>ast>>mysql 1

3. sql主要的如下::: 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的搭建的更多相关文章

  1. 从SQL Server到MySQL,近百亿数据量迁移实战

    从SQL Server到MySQL,近百亿数据量迁移实战 狄敬超(3D) 2018-05-29 10:52:48 212 沪江成立于 2001 年,作为较早期的教育学习网站,当时技术选型范围并不大:J ...

  2. 数据库 SQL Server 到 MySQL 迁移方法总结

    最近接手一起老项目数据库 SQL Server 到 MySQL 的迁移.因此迁移前进行了一些调查和总结.下面是一些 SQL Server 到 MySQL 的迁移方法. 1. 使用 SQLyog 迁移 ...

  3. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  4. sql server vs mysql

    1.中文: my.ini [mysqld] character-set-server=utf8 character-set-client=utf8 data\testdb\db.opt default ...

  5. SQL Server和MySQL数据库

    导读:接下来的网上商城的项目,需要用到MySQL数据库了.这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它.本篇博客,先介绍SQL Server的基本内容, ...

  6. 通过sql server 连接mysql

    图文:通过sql server 连接mysql   1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql.com/downloads/con ...

  7. Sql Server 2012 的新分页方法分析(offset and fetch) - 转载

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...

  8. 数据库如何从SQL server转换到SQLite

    我之前用的是SQL server数据库,但是客户那里觉得安装这个大的数据库比较卡,说是导致蓝屏了,硬往SQL server上赖,没有办法客户是上帝么,给他换个小点的数据库吧!考虑Access,不行这个 ...

  9. 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析

    对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...

随机推荐

  1. pytest文档7-pytest-html生成html报告

    前言 pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告.兼容Python 2.7,3.6 pytest-html 1.github上源码地址[https://github. ...

  2. lua string介绍

    1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(s ...

  3. cas 获取session中的用户信息

    <%Object object =request.getSession().getAttribute("_const_cas_assertion_");Assertion a ...

  4. JavaScript获得页面区域大小的代码

    var Client = {      viewportWidth: function() {        return self.innerWidth || (document.documentE ...

  5. FormBorderStyle为None的时候如何拖动窗体

    //为DllImport导出命名空间, using System.Runtime.InteropServices; public partial class Form1 : System.Window ...

  6. Git 提示fatal: remote origin already exists

    Git 提示fatal: remote origin already exists 错误解决办法 最后找到解决办法如下: 1.先删除远程 Git 仓库 $ git remote rm origin 2 ...

  7. Android应用更新自动检测下载

    由于Android项目开源所致,市面上出现了N多安卓软件市场.为了让我们开发的软件有更多的用户使用,我们需要向N多市场发布,软件升级后,我们也必须到安卓市场上进行更新,给我们增加了工作量.因此我们有必 ...

  8. 解决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 ...

  9. 〖Linux〗通过USB连接,共享Linux上的网络,使用Android手机上网。

    1. Android手机上打开USB共享 2. Linux上修改USB0的ip地址并启用 sudo ifconfig usb0 192.168.42.127 up 3. Android手机上修改路由表 ...

  10. java web 中的MVC

    M:相当于Bean V:jsp C:servlet 当客户端发来请求,servlet响应请求处理请求,并把要发送给客户端的数据封装到Bean中,然后通过转发,将这个封装好了数据Bean送给jsp,js ...