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
или пустая строка.