※ 引述《Jnaive (風車 鬱金香)》之銘言:
: 請問一下各位板友。
: 假設我有兩個table ( T1和T2)要做natural join,
: 兩個table都有個timestamp的欄位叫time,
: 在join完後的排序,若用order by的話只能對其中一個欄位來排序,
: 或是"order by T1.time,T2.time"先用其中之一,相同再用另一個。
: 能不能有排序的方式是以T1.time和T2.time之中時間比較小的為準來排序?
: order by能辦到嗎?
: 我有查過mysql的手冊,
: order by的語法定義是這樣,ORDER BY {col_name | expr | position}
: 感覺expr似乎可以,但不知道語法怎麼用?另外,posistion又是什麼?
: 手冊上也沒寫。
: 先謝謝各位囉!
ORDER BY {col_name | expr | position}
這句是說 ORDER BY 後面可以用 COL_NAME 或 EXPR 或POSITION
翻白話 ...
Order by可以用 Column Name 來進行
如 Order by Studfent_name, Time_1
或是
以變數結果排序 EXPR
如 Order BY column_1 + column_2 , time_1 + 3
order by least( column1, column2)
或是
以位置表式 POSITION
如 SELECT COLUMN_1 , COLUMN_2 , COLUMN_3
FROM TABLE_1
ORDER BY COLUMN_1 , COLUMN_2 , COLUMN_3
也可以寫成
SELECT COLUMN_1 , COLUMN_2 , COLUMN_3
FROM TABLE_1
ORDER BY 1,2,3
用在句子很長的時候
至於原來的問題
應該可以用 expr 來解決
expr 只要是內建或是self-define的 function應該都可以用
Oracle 有 LEAST (exprs) MySql 我不知道 @.@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.145.230.2