mssql 7.0 не может идентифицировать пустые записи в БД

В общем, новичок в sql, мне нужно идентифицировать 52 "пустых" записи в нашей базе данных, чтобы увидеть, к каким контактам они подключены, если таковые имеются, и пока не смогли их изолировать. Мы используем mssql 7.0 на Windows 2000 VM.

Под "пустыми" записями я подразумеваю, что когда пользователь открывает приложение БД для поиска контактов, которые перечислены в алфавитном порядке, первые 52 контакта просто все остаются пустыми. Вы можете прокручивать их один за другим, но к ним нет прикрепленной информации.

Я пробовал простые операторы select, но безуспешно изолировал записи.

Вот несколько примеров операторов выбора, которые я пробовал:

Ex.1

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

Поставляет 159 строк

Ex.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 строк

Ex.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 записей, что я должен быть не в курсе.

Ex.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 результата, соответствующих количеству "пустых" записей, и смогу перейти оттуда, исправляя каждую запись в показать соответствующую информацию. Извините, если все это неясно или имеет очевидное решение, но я подумал, что увижу, есть ли у кого-нибудь какие-либо идеи. Спасибо.

1 ответ

Ваше приложение, откуда берется скриншот, вероятно, упорядочивает по "чему-то" (или дополнительно фильтрует результаты, которые оно отображает), и кажется, что у вас 52 пустые записи, но на самом деле у вас 3359 из них с пустыми Kon_VorN а также Kon_NachN из которых 159 также имеют пустые Kon_Fa (на основе запроса Ex1). Возможно, если вы прокрутите все записи в приложении, вы найдете их больше.

Эти пропущенные записи (Kon_ID = 3, 12,...) возможно, в какой-то момент были удалены из базы данных, поэтому вы их упускаете.

Теперь, если вы хотите найти записи со всеми полями пустыми, вам просто нужно включить все поля в WHERE пункт. На данный момент совершенно невозможно найти ссылку на функцию для SQL Server 7.0, но я тоже не думаю, что ISNULL, NULLIF или же COALESCE доступны, чтобы помочь вам с упрощением проверки либо NULL или пустая строка.

Другие вопросы по тегам