Как я могу создать повторяющиеся строки для каждой строки в таблице, которая не содержит определенного значения? - PullRequest
0 голосов
/ 16 мая 2018

Имейте в виду, это для домашней работы. Я застрял в этой проблеме, по крайней мере, неделю.

Мне нужно добавить строку в таблицу Vendors для каждого поставщика (у каждого есть VendorID и VendorName), для которого значение VendorState не равно CA.

.

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

Любая помощь очень ценится.

edit-- вот вопрос слово в слово

Написать оператор INSERT, который добавляет строку в таблицу VendorCopy для каждый не калифорнийский поставщик в таблице поставщиков. (Это приведет к дубликаты поставщиков в таблице VendorCopy.)

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Вы можете использовать курсор для извлечения данных каждой строки в запросе выбора.
Если я правильно понял ваш вопрос, вы можете использовать этот скрипт для вставки новой строки для конкретного условия:

insert into Vendors
SELECT 'new val' col1,'new val' col2, VendorState FROM Vendors
where VendorState <> 'ca'


------------ --------------------- Редактировать
Если вы хотите создать новую таблицу (копию поставщика), вы можете использовать этот скрипт:

SELECT * into Vendors_Copy FROM Vendors
WHERE VendorState <> 'ca'
0 голосов
/ 16 мая 2018

Примерно так может быть

Insert into some_Other (col1, col2 ...)
SELECT v.VendorName, o.State 
FROM table_vendors v
CROSS APPLY table_state o
where v.vendor_id = o.vendorid and v.vendor_state != 'CA'
0 голосов
/ 16 мая 2018

Вам просто нужен этот запрос:

INSERT INTO table_vendors (VendorName, VendorState)
SELECT VendorName, VendorState FROM table_vendors WHERE VendorState != 'CA'

Имейте в виду, что если VendorId является первичным ключом или не имеет дублирующегося индекса, это поле необходимо для автоматического увеличения. Кроме того, вам необходимо указать все поля, кроме VendorId, поскольку вы не можете дублировать идентификатор.

...