加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 数据库 > MsSql > 正文

SQL查询理论问题 – 单语句与多语句查询

发布时间:2021-03-30 20:30:46 所属栏目:MsSql 来源:互联网
导读:当我编写SQL查询时,我发现自己常常认为“单一查询无法做到这一点”.当发生这种情况时,我经常转向使用临时表(一种或另一种)的存储过程或多语句表值函数,最后简单地组合结果并返回结果表. 我想知道是否有人知道,仅仅作为理论问题,是否应该可以编写任何查询,将单

当我编写SQL查询时,我发现自己常常认为“单一查询无法做到这一点”.当发生这种情况时,我经常转向使用临时表(一种或另一种)的存储过程或多语句表值函数,最后简单地组合结果并返回结果表.

我想知道是否有人知道,仅仅作为理论问题,是否应该可以编写任何查询,将单个结果集作为单个查询(而不是多个语句)返回.显然,我忽略了代码可读性和可维护性等相关点,甚至可能是查询性能/效率.这更多是关于理论的 – 它可以做到……而且不用担心,当多语句在所有情况下更适合我的目的时,我当然不打算开始强迫自己编写单语句查询,但是它可能会让我思考是否有一个可行的方法来从单个查询获得结果.

我想一些参数是有序的 – 我正在考虑一个关系数据库(如MS SQL),其中的表遵循常见的最佳实践(例如所有具有主键的表等等).

注意:为了赢得“接受的答案”,您需要提供明确的证明(参考网络资料或类似内容).

解决方法

至少使用最新版本的Oracle是绝对可能的.它有一个’model clause’,它使sql turing完整. ( http://blog.schauderhaft.de/2009/06/18/building-a-turing-engine-in-oracle-sql-using-the-model-clause/).当然,这一切都有通常的限制,我们实际上没有无限的时间和记忆.

对于没有这些abdominations的普通sql方言,我认为不可能.

我无法看到如何在’普通sql’中实现的任务将是:
假设一个表具有整数类型的单个列

对于每一行‘获取当前行的值并返回那么多行,获取该值,返回那么多行,然后继续,直到你连续两次获取相同的值并返回结果.

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读