看板 Database 關於我們 聯絡資訊
最近在精進一些SQL語法時,實際操作才發現語法不是任何環境都可以。 就我的理解,在MS-SQL、MySQL、及PostgreSQL的大部分語言都一樣,但是有些語法只能用在一個裡面。 例如: rank () over (order by...) dense_rank () over (order by...) 這語法我在MySQL無法執行,後來才發現這好像只有PostgreSQL才能用……。 還有,由於我公司的DB受制於cetus,有些語法又不能用,例如某些條件下的join……。 通常大家是怎麼判斷,有時query出現錯誤訊息,不是因為寫錯,而是因為該環境不允許? 類似這樣的事情實在很惱人…簡單的語法很多時候就變成要繞一大圈。 ----- Sent from JPTT on my Sony G3226. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.155.200 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1565446806.A.472.html
olycats: 不會有這個困擾耶…噴錯誤的時候就會懷疑沒支援了 08/16 03:09
olycats: 用久了大概都知道哪些語法比較特殊 各資料庫用法不同 08/16 03:10
olycats: 要用的時候都會先查一下 例如 rank over MySQL 08/16 03:12
olycats: 確認可以才會用 更何況還有資料庫版本的問題 08/16 03:13
tomhawkreal: 唯一可參考的是 該db是否支援特定ansi sql標準 04/30 10:42
tomhawkreal: 在支援標準之外 都要看該db的ref文件才行 04/30 10:42