Search in sources :

Example 71 with SQLServerStatementParser

use of com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser in project druid by alibaba.

the class SQLServerSelectTest method test_isEmpty.

public void test_isEmpty() throws Exception {
    String sql = "USE AdventureWorks2008R2;";
    String expect = "USE AdventureWorks2008R2";
    SQLServerStatementParser parser = new SQLServerStatementParser(sql);
    SQLStatement stmt = parser.parseStatementList().get(0);
    String text = TestUtils.outputSqlServer(stmt);
    Assert.assertEquals(expect, text);
//        System.out.println(text);
}
Also used : SQLServerStatementParser(com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser) SQLStatement(com.alibaba.druid.sql.ast.SQLStatement)

Example 72 with SQLServerStatementParser

use of com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser in project druid by alibaba.

the class SQLServerSelectTest11 method test_simple.

public void test_simple() throws Exception {
    String sql = "SELECT 1";
    String expect = "SELECT 1";
    SQLServerStatementParser parser = new SQLServerStatementParser(sql);
    SQLStatement stmt = parser.parseStatementList().get(0);
    String text = TestUtils.outputSqlServer(stmt);
    Assert.assertEquals(expect, text);
//        System.out.println(text);
}
Also used : SQLServerStatementParser(com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser) SQLStatement(com.alibaba.druid.sql.ast.SQLStatement)

Example 73 with SQLServerStatementParser

use of com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser in project druid by alibaba.

the class SQLServerSelectTest12 method test_simple.

public void test_simple() throws Exception {
    String sql = //
    "SELECT Row, Name " + //
    "FROM(" + //
    "SELECT ROW_NUMBER() OVER (ORDER BY ProductID) AS Row, Name " + //
    "FROM Product " + //
    ") AS ProductsWithRowNumbers " + "WHERE Row >= 6 AND Row <= 10";
    String expect = //
    "SELECT Row, Name" + //
    "\nFROM (SELECT ROW_NUMBER() OVER (ORDER BY ProductID) AS Row, Name" + //
    "\n\tFROM Product" + //
    "\n\t) ProductsWithRowNumbers" + //
    "\nWHERE Row >= 6" + "\n\tAND Row <= 10";
    SQLServerStatementParser parser = new SQLServerStatementParser(sql);
    SQLStatement stmt = parser.parseStatementList().get(0);
    String text = TestUtils.outputSqlServer(stmt);
    Assert.assertEquals(expect, text);
//        System.out.println(text);
}
Also used : SQLServerStatementParser(com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser) SQLStatement(com.alibaba.druid.sql.ast.SQLStatement)

Example 74 with SQLServerStatementParser

use of com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser in project druid by alibaba.

the class SQLServerSelectTest14 method test_simple.

public void test_simple() throws Exception {
    String sql = //
    "SELECT " + //
    "    a.* " + //
    "FROM " + //
    "    ( " + //
    "            SELECT " + //
    "                    row_number () over (ORDER BY a.time_add DESC) ROW, " + //
    "                    a.detail_no AS detailNo, " + //
    "                    a.ba_id AS baId, " + //
    "                    a.ba_name AS baName, " + //
    "                    a.tran_no AS tranNo, " + //
    "                    a.tran_name AS tranName, " + //
    "                    a.tran_type AS tranType, " + //
    "                    a.balance_type AS balanceType, " + //
    "                    a.detail_income AS detailIncome, " + //
    "                    a.detail_payout AS detailPayout, " + //
    "                    a.before_balance AS beforeBalance, " + //
    "                    a.after_balance AS afterBalance, " + //
    "                    a.time_add AS timeAdd, " + //
    "                    a.user_add AS userAdd, " + //
    "                    a.remark AS remark, " + //
    "                    ( " + //
    "                            SELECT " + //
    "                                    top 1 t.param_name " + //
    "                            FROM " + //
    "                                    config.sys_params t " + //
    "                            WHERE " + //
    "                                    t.param_type = 2 " + //
    "                            AND t.param_value = a.tran_type " + //
    "                    ) AS tranTypeName " + //
    "            FROM " + //
    "                    bussiness.account_detail a " + //
    "            WHERE " + //
    "                    1 = 1 " + //
    "            AND a.time_add >= 2 " + //
    "            AND a.time_add <= 3 " + //
    "    ) a " + //
    "WHERE " + //
    "    a.ROW BETWEEN (10+2) AND 20 ";
    String expect = "SELECT a.*" + //
    "\nFROM (SELECT ROW_NUMBER() OVER (ORDER BY a.time_add DESC) AS ROW, a.detail_no AS detailNo, a.ba_id AS baId, a.ba_name AS baName, a.tran_no AS tranNo" + //
    "\n\t\t, a.tran_name AS tranName, a.tran_type AS tranType, a.balance_type AS balanceType, a.detail_income AS detailIncome, a.detail_payout AS detailPayout" + //
    "\n\t\t, a.before_balance AS beforeBalance, a.after_balance AS afterBalance, a.time_add AS timeAdd, a.user_add AS userAdd, a.remark AS remark" + //
    "\n\t\t, (" + //
    "\n\t\t\tSELECT TOP 1 t.param_name" + //
    "\n\t\t\tFROM config.sys_params t" + //
    "\n\t\t\tWHERE t.param_type = 2" + //
    "\n\t\t\t\tAND t.param_value = a.tran_type" + //
    "\n\t\t\t) AS tranTypeName" + //
    "\n\tFROM bussiness.account_detail a" + //
    "\n\tWHERE 1 = 1" + //
    "\n\t\tAND a.time_add >= 2" + //
    "\n\t\tAND a.time_add <= 3" + //
    "\n\t) a" + //
    "\nWHERE a.ROW BETWEEN 10 + 2 AND 20";
    SQLServerStatementParser parser = new SQLServerStatementParser(sql);
    SQLStatement stmt = parser.parseStatementList().get(0);
    String text = TestUtils.outputSqlServer(stmt);
    Assert.assertEquals(expect, text);
//        System.out.println(text);
}
Also used : SQLServerStatementParser(com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser) SQLStatement(com.alibaba.druid.sql.ast.SQLStatement)

Example 75 with SQLServerStatementParser

use of com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser in project druid by alibaba.

the class SQLServerSelectTest15 method test_simple.

public void test_simple() throws Exception {
    //
    String sql = "SELECT TOP 50 PERCENT * FROM Persons";
    String expect = //
    "SELECT TOP 50 PERCENT *\n" + "FROM Persons";
    SQLServerStatementParser parser = new SQLServerStatementParser(sql);
    SQLStatement stmt = parser.parseStatementList().get(0);
    String text = TestUtils.outputSqlServer(stmt);
    Assert.assertEquals(expect, text);
//        System.out.println(text);
}
Also used : SQLServerStatementParser(com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser) SQLStatement(com.alibaba.druid.sql.ast.SQLStatement)

Aggregations

SQLServerStatementParser (com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser)152 SQLStatement (com.alibaba.druid.sql.ast.SQLStatement)145 SQLServerSchemaStatVisitor (com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerSchemaStatVisitor)64 Column (com.alibaba.druid.stat.TableStat.Column)21 SQLCreateTableStatement (com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement)17 SQLSelectStatement (com.alibaba.druid.sql.ast.statement.SQLSelectStatement)9 SQLServerSelectQueryBlock (com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerSelectQueryBlock)8 SQLServerInsertStatement (com.alibaba.druid.sql.dialect.sqlserver.ast.stmt.SQLServerInsertStatement)8 SQLCreateIndexStatement (com.alibaba.druid.sql.ast.statement.SQLCreateIndexStatement)4 SQLSelect (com.alibaba.druid.sql.ast.statement.SQLSelect)4 SQLOrderBy (com.alibaba.druid.sql.ast.SQLOrderBy)2 SQLCreateViewStatement (com.alibaba.druid.sql.ast.statement.SQLCreateViewStatement)2 SQLSelectQuery (com.alibaba.druid.sql.ast.statement.SQLSelectQuery)2 DB2StatementParser (com.alibaba.druid.sql.dialect.db2.parser.DB2StatementParser)2 MySqlSelectQueryBlock (com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock)2 MySqlStatementParser (com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser)2 OracleStatementParser (com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser)2 PGSelectQueryBlock (com.alibaba.druid.sql.dialect.postgresql.ast.stmt.PGSelectQueryBlock)2 PGSQLStatementParser (com.alibaba.druid.sql.dialect.postgresql.parser.PGSQLStatementParser)2 SQLMergeStatement (com.alibaba.druid.sql.ast.statement.SQLMergeStatement)1