@Override protected String renderQueryLimit(Query query) { StringBuilder sql = new StringBuilder(); if (Query.QueryType.SELECT.equals(query.getType())) { int offset = query.getOffset(); int limit = query.getLimit(); if (offset > 0 && limit >= 0) { sql.append(" ) QUERY_INNER WHERE ROWNUM <= "); sql.append(offset + limit); sql.append(" ) WHERE ROWNUM_INNER > "); sql.append(offset); } else if (offset > 0) { sql.append(" ) QUERY_INNER ) WHERE ROWNUM_INNER > "); sql.append(offset); } else if (limit >= 0) { sql.append(" ) WHERE ROWNUM <= "); sql.append(limit); } } return sql.toString(); }
@Override protected String renderQueryLimit(Query query) { StringBuilder sql = new StringBuilder(); if (Query.QueryType.SELECT.equals(query.getType())) { int offset = query.getOffset(); int limit = query.getLimit(); if (offset > 0 && limit >= 0) { sql.append(" ) QUERY_INNER WHERE ROWNUM <= "); sql.append(offset + limit); sql.append(" ) WHERE ROWNUM_INNER > "); sql.append(offset); } else if (offset > 0) { sql.append(" ) QUERY_INNER ) WHERE ROWNUM_INNER > "); sql.append(offset); } else if (limit >= 0) { sql.append(" ) WHERE ROWNUM <= "); sql.append(limit); } } return sql.toString(); }
@Override protected String renderQuerySelect(final Query query, final TableNameConverter converter, final boolean count) { StringBuilder sql = new StringBuilder(); // see http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html if (Query.QueryType.SELECT.equals(query.getType())) { int offset = query.getOffset(); int limit = query.getLimit(); if (offset > 0) { sql.append("SELECT * FROM ( SELECT QUERY_INNER.*, ROWNUM ROWNUM_INNER FROM ( "); } else if (limit >= 0) { sql.append("SELECT * FROM ( "); } } sql.append(super.renderQuerySelect(query, converter, count)); return sql.toString(); }
@Override protected String renderQuerySelect(final Query query, final TableNameConverter converter, final boolean count) { StringBuilder sql = new StringBuilder(); // see http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html if (Query.QueryType.SELECT.equals(query.getType())) { int offset = query.getOffset(); int limit = query.getLimit(); if (offset > 0) { sql.append("SELECT * FROM ( SELECT QUERY_INNER.*, ROWNUM ROWNUM_INNER FROM ( "); } else if (limit >= 0) { sql.append("SELECT * FROM ( "); } } sql.append(super.renderQuerySelect(query, converter, count)); return sql.toString(); }
switch (query.getType()) { case SELECT: sql.append("SELECT ");
switch (query.getType()) { case SELECT: sql.append("SELECT ");
switch (query.getType()) { case SELECT:
@Override protected String renderQuerySelect(Query query, TableNameConverter converter, boolean count) { StringBuilder sql = new StringBuilder(); String tableName = query.getTable(); if (tableName == null) { tableName = converter.getName(query.getTableType()); } switch (query.getType()) { case SELECT: sql.append("SELECT "); if (query.isDistinct()) { sql.append("DISTINCT "); } int limit = query.getLimit(); if (limit >= 0) { if (query.getOffset() > 0) { limit += query.getOffset(); } sql.append("TOP ").append(limit).append(' '); } if (count) { sql.append("COUNT(*)"); } else { sql.append(querySelectFields(query, converter)); } sql.append(" FROM ").append(queryTableName(query, converter)); break; } return sql.toString(); }
switch (query.getType()) { case SELECT:
@Override protected String renderQuerySelect(Query query, TableNameConverter converter, boolean count) { StringBuilder sql = new StringBuilder(); String tableName = query.getTable(); if (tableName == null) { tableName = converter.getName(query.getTableType()); } switch (query.getType()) { case SELECT: sql.append("SELECT "); if (query.isDistinct()) { sql.append("DISTINCT "); } int limit = query.getLimit(); if (limit >= 0) { if (query.getOffset() > 0) { limit += query.getOffset(); } sql.append("TOP ").append(limit).append(' '); } if (count) { sql.append("COUNT(*)"); } else { sql.append(querySelectFields(query, converter)); } sql.append(" FROM ").append(queryTableName(query, converter)); break; } return sql.toString(); }