Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Написание SQL-запроса.  [new]
art000
Member

Откуда:
Сообщений: 2
Доброго времени суток.
Возникла необходимость написать скрипт. Необходимо сделать следующее:
- есть таблица со следующими значениями
Num | Key | Data |
1 101 2112
2 102 3224
3 101 NULL

- необходимо просмотреть существующую таблицу. При условии что будет найдено 2 одинаковых Key и у одного из них поле Data заполнено, а у второго пустое(NULL), производится копирование значения Data в пустое поле.

Т.е. мы получаем следующий результат:
Num | Key | Data |
1 101 2112
2 102 3224
3 101 2112

Заранее благодарен за помощь. Ниже привожу скрипт на создание таблицы и заполнение ее тестовыми данными.

CREATE TABLE [dbo].[Test](
[Num] [int] NOT NULL,
[Key] [varchar](64) NULL,
[Data] [varchar](64) NULL,
)
insert test values (1, 101, 2112)
insert test values (2, 102, 3224)
insert test values (3, 101, null)

select * from test
16 июл 09, 19:00    [7426158]     Ответить | Цитировать Сообщить модератору
 Re: Написание SQL-запроса.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а если при одинаковых ключах 3 значение жоптим 1 ,10 и нулл..что в нулл записать?
-------------------------------------
Jedem Das Seine
16 июл 09, 19:07    [7426180]     Ответить | Цитировать Сообщить модератору
 Re: Написание SQL-запроса.  [new]
vino
Member

Откуда:
Сообщений: 1191
art000, напрашивается один оператор
UPDATE f SET [Data] = s.[Data] FROM [dbo].[Test] f INNER JOIN [dbo].[Test] s ON f.[Key] = s.[Key] and f.[Data] is null and s.[Data] is not null
16 июл 09, 19:19    [7426208]     Ответить | Цитировать Сообщить модератору
 Re: Написание SQL-запроса.  [new]
art000
Member

Откуда:
Сообщений: 2
vino
art000, напрашивается один оператор
UPDATE f SET [Data] = s.[Data] FROM [dbo].[Test] f INNER JOIN [dbo].[Test] s ON f.[Key] = s.[Key] and f.[Data] is null and s.[Data] is not null



Спасибо большое. Все работает. Тема закрыта.
17 июл 09, 17:44    [7430807]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить