我在读这个问题,如何确定java中jdbctemplate的sql查询类型?。正确答案是,select查询可以从 SELECT
或者 WITH
.
仅供参考,答案是:
// SELECT subqueries are irrelevant for the final result. So the command, the first verb is indicative of the result (int updateCount vs. ResultSet).
boolean isSqlSelect = sql.toUpperCase().startsWith("SELECT")
|| sql.toUpperCase().startsWith("WITH");
现在,假设我有一个问题
SELECT id, name, email FROM users;
问题
如何重写以 WITH
?
尽管问题是针对jdbc的,但它对所有sql和odbc/jdbc都是通用的吗?
2条答案
按热度按时间vwkv1x7d1#
WITH
是公共表表达式(CTE)的语法。这是所有合理的数据库基本上都支持的标准sql语法(mysql是最后添加这种支持的)。CTE用于定义可在查询中多次引用的子查询。
请注意,CTE可用于
UPDATE
以及DELETE
声明以及SELECT
,因此它们不一定表示SELECT
.siotufzp2#
既然你也问过如何用cte重写你的查询。。。
我发现在应用程序的早期定义列名更简单
with
所以我留了一些空间给我的朋友select
```with cte (id, name, email) as
(select *
from users)
select * from cte;