Предложение ORDER BY не выполнено - PullRequest
0 голосов
/ 11 ноября 2018

Мое предложение ORDER BY не выполнено.Код:

try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/kabumbu?autoReconnect=true&useSSL=false", "root", "****");
            String q = "select player_id, sum(number_of_goals) as 'Number of Goals',school_name "
                    + "from goal_scorers g , schools s "
                    + "where g.school_id = s.school_id "
                    + "group by g.player_id "
                    + "ORDER BY number_of_goals DESC";
            PreparedStatement pstm = conn.prepareStatement(q);
            ResultSet rs = null;
            rs = pstm.executeQuery();

            jTable2.setModel(DbUtils.resultSetToTableModel(rs));

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

1 Ответ

0 голосов
/ 11 ноября 2018

Вы запрашиваете sum(number_of_goals), поэтому для порядка по следует использовать то же самое:

ORDER BY sum(number_of_goals)

вместо ORDER BY number_of_goals

Или по номеру столбца (2)

ORDER BY 2

ЗАКАЗАТЬ {имя-столбца |ColumnPosition |Выражение}

имя-столбца

Относится к именам, видимым из SelectItems в базовом запросе инструкции SELECT.Имя столбца, которое вы указываете в предложении ORDER BY, не обязательно должно быть списком SELECT.

ColumnPosition

Целое число, которое идентифицирует номер столбца вSelectItems в базовом запросе инструкции SELECT.ColumnPosition должно быть больше 0 и не больше количества столбцов в таблице результатов.Другими словами, если вы хотите упорядочить по столбцу, этот столбец должен быть указан в списке SELECT.

Выражение Выражение ключа сортировки, например числовые, строковые выражения и выражения даты и времени.,Выражение также может быть выражением значения строки, таким как скалярный подзапрос или регистр.

...