列在书面“选择 *”查询中显示为空,但在“选择前 1000 个”中填充。我该如何解决这个问题?

Posted

技术标签:

【中文标题】列在书面“选择 *”查询中显示为空,但在“选择前 1000 个”中填充。我该如何解决这个问题?【英文标题】:Column shows null in written "Select *" query, but is populated in "Select top 1000". How can I resolve this issue? 【发布时间】:2021-03-10 17:47:35 【问题描述】:

长话短说,我有一个表加载到我的 SQL Server。当我右键单击“Select top 1000...”时,我可以看到数据填充得很好。

但是,当我编写查询并运行它时,在完全相同的表(无过滤器)上,列显示为 NULL。

有人见过这个吗?有没有办法解决这个问题?

【问题讨论】:

您看到的结果取决于行的顺序——没有order by 可以是任何顺序。您的行似乎有很多 NULL 值,并且在运行查询时会看到它们。 从查询中删除前 1000 个并执行。 您是否正在编写前 1000 名的查询?尝试使用任何不为 NULL 的过滤器编写查询。 您的两种方法是否在同一个数据库的同一个模式中使用同一个表? 【参考方案1】:

Gordon Linoff 的回答让我检查了我在连接中使用的一些列。我的日期列之一完全为空,我正在过滤视图中的日期列。

【讨论】:

以上是关于列在书面“选择 *”查询中显示为空,但在“选择前 1000 个”中填充。我该如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章

为啥加入从视图中选择前 N 比加入视图要快得多?

从 CPU 使用率中位数的子查询中选择前 10 名,并使用 Influx 显示时间序列数据

如何在访问报告详细信息部分中选择前 N 个或在 sql 子查询中选择前 N 个

SQL Server 2008 R2中,“选择前1000行”为“选择所有行”

引导列在 Firefox 中未正确显示

java - 如何检查JDBC表中的某些列在Java中是不是为空