作者paranoia5201 (社会黑暗、行路难)
看板Database
标题[SQL ] 如何判断语法在环境中的可行性?
时间Sat Aug 10 22:20:04 2019
最近在精进一些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://webptt.com/cn.aspx?n=bbs/Database/M.1565446806.A.472.html
1F:→ olycats: 不会有这个困扰耶…喷错误的时候就会怀疑没支援了 08/16 03:09
2F:→ olycats: 用久了大概都知道哪些语法比较特殊 各资料库用法不同 08/16 03:10
3F:→ olycats: 要用的时候都会先查一下 例如 rank over MySQL 08/16 03:12
4F:→ olycats: 确认可以才会用 更何况还有资料库版本的问题 08/16 03:13
5F:推 tomhawkreal: 唯一可参考的是 该db是否支援特定ansi sql标准 04/30 10:42
6F:→ tomhawkreal: 在支援标准之外 都要看该db的ref文件才行 04/30 10:42