SQL вложенный / сложный оператор выбора - PullRequest
0 голосов
/ 27 октября 2011

Я написать скрипт, который будет обновлять / вставлять запись о свойстве. Я определил метод, который гарантирует, что скрипт не будет создавать дубликаты, но я не совсем уверен, как его реализовать.

Мы берем импорт из CSV-файла, который будет иметь множество свойств. Это свойство имеет сторонний ссылочный номер от агента. Это может создать дубликат, потому что, очевидно, отдельный агент может использовать ту же ссылку.

В таблице ее необходимо обновить / вставить, либо buildingNumber, buildingName или AddressLine1 не будут равны нулю. Затем мне нужно проверить почтовый индекс существующих записей и какой столбец не является пустым по отношению к столбцу, который я буду вставлять.

Я знаю, что структура таблицы дерьмо. Я не проектировал это, и я никак не могу его изменить.

Я ищу что-то подобное.

if exists(
  select * from tblMemberProperties
  where ThirdPartyReference = @PropertyThirdPartyReference
  and ((if buildingNumber is not null (then BuildingNumber = @BuildingNumber)
  or (if buildingName is not null and above if isn't satisfied (then buildingName = @BuildingName)
  or (if AddressLine1 is not null and above 2 are null (then AddressLine1 = @AddressLine1))
  and (postcode = @postcode)

1 Ответ

0 голосов
/ 28 октября 2011
if exists(
select * from tblMemberProperties
where Postcode = @Postcode
and BuildingNumber = @BuildingNumber
and BuildingNumber is not null
or 
Postcode = @Postcode
and BuildingName = @BuildingName
and BuildingName is not null
or
Postcode = @Postcode
and AddressLine1 = @AddressLine1
and AddressLine1 is not null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...