@Override
    public String toSQL () throws SQLSyntax  {
        StringBuilder sql = new StringBuilder("DELETE FROM ");
        
        if (null == table || table.isEmpty()) {
            throw new SQLSyntax("Missing SQL UPDATE table");
        }
        sql.append(table);
        
        /* WHERE */
        if (this.where.size() > 0) {
            sql.append(" WHERE ");
            boolean first = true;
            for (Map obj : this.where) {
                if (!first) {
                    sql.append(" ");
                    sql.append(obj.get("type"));
                    sql.append(" ");
                } else {
                    first = false;
                }
                sql.append(obj.get("where"));
            }
        }
                
        /* ORDER */
        if (this.order.size() > 0) {
            sql.append(" ORDER BY ");
            boolean first = true;
            for (String expr : this.order) {
                if (!first) {
                    sql.append(", ");
                } else {
                    first = false;
                }
                sql.append(expr);
            }
        }
        
        if (null != limit) {
            sql.append(" LIMIT ");
            sql.append(String.valueOf(limit));
        }
                
        return sql.toString();
    }