0

私は私が持っている質問のために次のことを考え出しました:

SELECT Event_id, SUM(Money) AS 'Total Money'
FROM prize
GROUP BY Event_id
ORDER BY 'Total Money' DESC;

ただし、合計金額でのご注文は承っておりません。' ' マークを省略して Total_Money 列を呼び出すと、正常に動作します。

SELECT Event_id, SUM(Money) AS Total_Money
FROM prize
GROUP BY Event_id
ORDER BY Total_Money DESC

どうしてこれなの?列 Total Money を呼び出して、好きなように並べ替える方法はありますか?

4

3 に答える 3

1

あなたが書くとき、あなたSELECT Event_id, SUM(Money) AS Total MoneyはSum(Money)に別名TotalMoneyを与えました。
Total Moneyを引用符で囲むと、間違った文字列と見なされます。

于 2012-07-24T10:12:23.107 に答える
0
SELECT Event_id, SUM(Money) AS `Total Money`
FROM prize
GROUP BY Event_id
ORDER BY `Total Money` DESC;

「合計金額」での注文は、基本的に、MySQLに文字列で注文することを意味します。何かを引用符で囲むと、文字列が作成されます。エイリアスを作成するとき、いくつかの予約語にちなんで名付けられた列名を処理します(userたとえば)-バッククォートを使用します:

`user`
于 2012-07-24T10:11:30.740 に答える
0

一重引用符は文字列値を定義するので、あなたの順序では、もちろんどちらが機能しないかorder by this columnを言っているorder by the string 'Total Money'のではありません。

本当にスペースを使用したい場合は、次のような一重引用符の代わりにバッククォートを使用できます。

ORDER BY `Total Money`
于 2012-07-24T10:11:49.920 に答える