亿百体育官网不同类型数据库的函数语法或多或少存在各异亿百体育官网,要思让功能疏导的 SQL 查询语句在不同类型的数据库中齐能被胜利扩展,就要把各数据库齐有的那些各异化函数语法进行翻译。
[[442121]]
押注使用 ORM 工夫或者将技艺员书写的查询退换成不同数据库的 SQL,极度于有一定的移植才调。但 ORM 工夫只顺应卤莽 OLTP 场景下的粗陋 SQL,难以杀青 OLAP 场景下较复杂 SQL 的移植,举例,使用了 ORM 工夫中不径直赈济的函数,或者遭受 FROM 中包含子查询的复杂 SQL。
www.huangguantiyuvipnation.vip最近,一位知名体育明星皇冠赌场中赢得数百万奖金,引起广泛关注热议。集算器 SPL 狡计了一套圭臬的 SQL 查询语法,该语法内置多数函数(还在抓续追加中),可刻画更多常运算。SPL 中有一个 sqltranslate 函数,不错把这种圭臬 SQL 翻译成不同数据库的 SQL,杀青数据库的迁徙。
比如这么的圭臬 SQL:
皇冠客服飞机:@seo3687澳门金沙娱乐皇冠足球澳门皇冠娱乐城打不开怎么办
Earthstone Energy(ESTE.US)涨超15%,报18.74美元。消息面上,Permian Resources(PR.US)同意以全股票(包括债务)交易方式收购Earthstone Energy,交易价值约为45亿美元。交易完成后,现有Permian Resources股东将拥有合并后公司的约73%股权,而现有Earthstone Energy股东将拥有约27%股权。
SELECT CLIENT, YEAR(ORDERDATE), SUM(AMOUNT) , COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, YEAR(ORDERDATE) HAVING SUM(AMOUNT) > 2000
用.sqltranlate(“MYSQL”) 翻译后就得回:
SELECT CLIENT, YEAR(ORDERDATE), SUM(AMOUNT) , COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, YEAR(ORDERDATE) HAVING SUM(AMOUNT) > 2000
而若是使用.sqltranslate(“ORACLE”) 将复返:
皇冠信用盘
SELECT CLIENT, EXTRACT(YEAR FROM ORDERDATE), SUM(AMOUNT) , COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, EXTRACT(YEAR FROM ORDERDATE) HAVING SUM(AMOUNT) > 2000
不错看到,圭臬函数或者正确地阐述数据库遴荐相应的函数。
SPL 杀青 SQL 移植,秉承的计谋是只对圭臬 SQL 中的函数进行翻译,不翻译(原样照抄)语句,从而使圭臬 SQL 可刻画更多的运算。比如,关于底下的子查询不管翻译成哪种数据库 SQL 齐不会变,也齐不错平常扩展。
SELECT ORDERID, M FROM ( SELECT ORDERID, MONTH(ORDERDATE) M FROM ORDERS) T1
集算器 SPL 是 Java 写的开源软件,很容易被 JAVA 愚弄 集成而使用这个 SQL 移植的功能,在愚弄技艺中若是需要翻译 SQL 语句,不错径直调用 api 步调:
String sql = “SELECT CLIENT, YEAR(ORDERDATE), SUM(AMOUNT) , COUNT(ORDERID) FROM ORDERS GROUP BY CLIENT, YEAR(ORDERDATE) HAVING SUM(AMOUNT) > 2000”; sql = com.raqsoft.dm.sql.SQLUtil.translate(sql, “ORACLE”);