相关疑难解决方法(0)

使用SQL序号位置表示法的好处?

背景资料

序号位置表示法(AKA序号)是基于SELECT子句列中列顺序的列速记,而不是列名称或列别名.在该ORDER BY子句中通常支持,一些数据库(MySQL 3.23 +,PostgreSQL 8.0+)也支持该GROUP BY子句的语法.

以下是使用Ordinals的示例:

GROUP BY 1, 2
ORDER BY 1, 2
Run Code Online (Sandbox Code Playgroud)

使用它并不好,因为它会使查询变得脆弱 - 如果列顺序发生变化,则需要更新序数,否则您的查询将不会返回您的想法.很可能,GROUP BY如果在这些位置的列包含在聚合中,则会出现错误...

问题

我能想到的唯一好处是通过网络发送的数据更少,如果你没有使用存储过程或函数(这使得ordinal用法无论如何都对我来说).我还缺少其他任何好处吗?

泄露

这可能听起来像是一项家庭作业,但它确实是研究办公室每个月提供的教育午餐.他们支付午餐费用,我们必须提供一个感兴趣的小话题.

sql sql-server oracle ordinals

29
推荐指数
3
解决办法
2万
查看次数

如何在SQL Server中使用OFFSET和Fetch without Order by

我想在我的SQL server 2012查询中使用OFFSET和Fetch.但没有任何顺序.我不能使用order by.Because我的排序顺序将丢失.我如何使用OFFSET和Fetch没有order by和行号以及我的查询中的位置?我的2个选择表具有相同的结构.

INSERT INTO @TempTable [some columns]  
select [some columns] from table1 order by col1 
INSERT INTO @TempTable [same columns]
select [some columns] from table2 order by col2
select * from @TempTable OFFSET 20 ROWS FETCH NEXT 50 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

此查询在OFFSET关键字处有语法错误.

sql-server sql-order-by fetch offset sql-server-2012

14
推荐指数
3
解决办法
1万
查看次数