Нужна помощь в попытке сделать простой SQL INSERT с простой проверкой данных - PullRequest
0 голосов
/ 07 мая 2009

У меня есть следующие данные в таблице.

Name                LeftId    RightId
------------------------------------------
Cat                     1  
Cat                     2
Dog                     4
Dog                     5
Dog                               7
Dog                               69
Gerbil                  12        13 

Мне нужно вставить их в новую таблицу как ...

Id         Name
-------------------------------
1          Cat
2          Cat
4          Dog
5          Dog
7          Dog
69         Dog
12         Gerbil    (or 13. don't care which number out of the two)

Таким образом, поля LeftId и RightId могут содержать значения NULLS ИЛИ NVARHCAR (даже если они указаны в числах, как указано выше ... они всегда будут числами ... только импорт создал поле как nvarchar (255).

Я могу изменить поля исходной таблицы, если требуется.

Может кто-нибудь помочь?

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

Приветствия:)

1 Ответ

5 голосов
/ 07 мая 2009

Вы можете сделать это легко с помощью IsNull:

INSERT INTO newtable (id,name)
SELECT IsNull(leftid,rightid), name
FROM oldtable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...