-1

一般来说,对于 sql 来说相当新,我必须在我们的数据库中识别 52 个“空”条目,以查看它们连接到哪些联系人(如果有的话),并且到目前为止还无法隔离它们。我们在 windows 2000 vm 上使用 mssql 7.0。

我所说的“空”条目的意思是,当用户打开数据库应用程序以搜索按字母顺序列出的联系人时,前 52 个联系人都是空白的。您可以一一滚动浏览它们,但它们没有附加信息。

我尝试过简单的选择语句,但未能成功隔离条目。

以下是我尝试过的一些选择语句示例:

例 1

SELECT DISTINCT Kon_NachN, Kon_VorN, Kon_ID
FROM tbl_Kontakte
WHERE Kon_Fa='' AND Kon_NachN ='' AND Kon_VorN ='' 

提供 159 行

例 2

SELECT DISTINCT Kon_ID, Kon_Fa, Kon_VorN, Kon_NachN
FROM tbl_Kontakte
WHERE Kon_Fa is NULL AND Kon_VorN is NULL AND Kon_NachN is NULL
ORDER BY Kon_ID ASC

提供 0 行

例 3

我注意到当我选择所有缺少某些数字的 Kon_ID 并尝试隔离这些数字时,但使用下面的 2 个语句未成功

SELECT * 
FROM tbl_Kontakte
ORDER BY Kon_ID ASC

缺少的 Kon_ID 是例如 3、12、17、33、87、88、96、97

SELECT *
FROM tbl_Kontakte
WHERE Kon_ID ='3' OR Kon_ID ='12' OR Kon_ID ='17'
ORDER BY Kon_ID ASC

提供 0 行

这些条目绝对不存在,但我不知道如何找到任何附加信息,但我发现在一个数据库的前 100 个条目中有 8 个丢失的 Kon_ID,其中有超过 4000 个条目,我一定是不符合要求的。

例 4

SELECT *
FROM tbl_Kontakte
WHERE (Kon_VorN is null or Kon_VorN='') and (Kon_NachN is null or Kon_NachN='')
ORDER BY Kon_ID ASC

提供 3359 行

由于这几乎是我在在线教程之外的第一次 SQL 破解(也是第一次在这里发布),我想我想我会找到 52 个与“空”条目数量匹配的结果,并且能够从那里修复每个条目到显示相应的信息。抱歉,如果这一切都不清楚或有明显的解决方案,但我想我会看看是否有人有任何想法。谢谢。

4

1 回答 1

0

您的应用程序(屏幕截图的来源)可能按“某物”排序(或进一步过滤它显示的结果),您似乎有 52 条空记录,但实际上,您有 3359 条空记录Kon_VorNKon_NachN其中159 也有空Kon_Fa(基于 Ex1 查询)。如果您滚动浏览应用程序中的所有记录,您可能会找到更多记录。

这些缺失的条目(Kon_ID= 3, 12, ...)可能已在某个时候从数据库中删除,这就是您缺失它们的原因。

现在,如果您想查找所有字段为空的记录,您只需在WHERE子句中包含所有字段。目前几乎不可能找到 SQL Server 7.0 的函数参考,但我不认为ISNULL, NULLIForCOALESCE可以帮助您简化对任一NULL字符串或空字符串的检查。

于 2019-04-05T10:28:48.783 回答