精華區beta Database 關於我們 聯絡資訊
※ 引述《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