public synchronized String getFinalSelect() { StringBuffer sb = new StringBuffer(SELECT+" "); if (isDistinct()) { sb.append(DISTINCT+" "); } sb.append(getSelectString()+" "); if (getFrom() != null) sb.append(getFrom().getFromString()+" "); if (getWhere() != null) sb.append(getWhere().getWhereString()+" "); if (getGroup() != null) sb.append(getGroup().getGroupString()+" "); if (getHaving() != null) sb.append(getHaving().getHavingString()+" "); if (getOrder() != null) sb.append(getOrder().getOrderString()+" "); if (getTop() > 0) sb.append(LIMIT + getTop()+" "); if (getOffset() > 0) sb.append(OFFSET + getOffset()+" "); if (getAs() != null) { sb.append(" " + SelectStrings.AS + " "); sb.append(getAs()+" "); } return sb.toString();