gpt4 book ai didi

sql - 查看结果与查询的相同代码不同

转载 作者:行者123 更新时间:2023-12-02 08:53:29 24 4
gpt4 key购买 nike

我有一个带有一个内部联接查询的简单选择。但是,当我使用相同的代码创建 View 时,结果是不同的。我不会从 View 中提取数据。它都是基于用户表的。

查询:

SELECT DISTINCT TOP 100 
dbo.table1.a1,
dbo.table1.a2,
dbo.table2.something_else FROM dbo.table1 inner join
dbo.table2 ON
dbo.tabel1.a1 = dbo.table2.somethingelse
WHERE dbo.table.a2 = '1'
ORDER BY dbo.table.a1 DESC

查看:

CREATE VIEW TEST
AS

SELECT DISTINCT TOP 100
dbo.table1.a1,
dbo.table1.a2,
dbo.table2.something_else FROM dbo.table1 inner join
dbo.table2 ON
dbo.tabel1.a1 = dbo.table2.somethingelse
WHERE dbo.table.a2 = '1'
ORDER BY dbo.table.a1 DESC

当我将查询结果与 View 进行比较时,它们似乎不同。 VIEW 的结果比查询多,而且顺序不一样(因为 VIEW 中的记录比查询多)。代码相同,怎么会不同呢?

最佳答案

一般来说,在 View 创建中不允许使用ORDER BY及相关语句。简而言之,结果以未定义的顺序从 View 返回。这可能就是为什么您也不限制前 100 行,因为这些行没有排序。

将排序和行数提取到从 View 中选择的语句中,看看是否有效。

关于sql - 查看结果与查询的相同代码不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6765993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com