mssql 7.0 не может идентифицировать пустые записи в БД - PullRequest
0 голосов
/ 05 апреля 2019

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

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

Я пробовал простые операторы select, но не смог выделить записи.

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

Пример 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, что определенные числа отсутствовали, и попытался их изолировать, но безуспешно с двумя приведенными ниже утверждениями

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

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

1 Ответ

0 голосов
/ 05 апреля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...