我有一个奇怪的错误,我无法解释。基本上,我正在使用 excel 对我的 SQL 数据库进行查询,并且当涉及到我的数据库中非常特殊的订单时,我会弹出不存在的数据。
这是一个围绕此订单的简单查询:
从 OR200100 中选择 *,其中 OR200100.OR20001='0000793605'
这是EXCEL中的输出
这是 SQL 中的相同输出
这里发生了什么?同一个查询如何产生 2 个不同的结果?
我有一个奇怪的错误,我无法解释。基本上,我正在使用 excel 对我的 SQL 数据库进行查询,并且当涉及到我的数据库中非常特殊的订单时,我会弹出不存在的数据。
这是一个围绕此订单的简单查询:
从 OR200100 中选择 *,其中 OR200100.OR20001='0000793605'
这是EXCEL中的输出
这是 SQL 中的相同输出
这里发生了什么?同一个查询如何产生 2 个不同的结果?
OK, so it's SQL Server then, that's important because different SQL products can have very different idiosyncrasies and controls.
The next things to check are these:
Is OR200100
a Table or a View? If it's a view then post it's code.
Are you using the same Login/account from both Excel and SSMS?
Are you sure that you are connecting to the same Server and Database? SSMS tells you what you are connected to, but client apps like Excel do not and it is very common for this type of problem to be caused by the app connecting to a Dev or QA version of the database. See here for some of the different ways that this can happen:
如果可以,对数据库运行 SQL Server Profiler,然后将输出与您在 ssms 中运行的 sql 查询进行比较。
所以我遇到了一个非常相似的问题,我的查询是按周数分组的。我发现其中一个查询设置了 datefirst 5 集,而另一个则没有。我想这里的关键是确保,如果您在 ssms 查询中使用任何 SET 操作,这些操作与 Excel 查询字符串中的操作相同。