|
MS SQL: добавление данных по условию |
☑ |
0
extrim-style
04.06.15
✎
08:44
|
Есть 2 таблицы. Необходимо добавить данные из второй в первую. Если первая - пустая, тогда добавить первую запись из второй таблицы, иначе - добавить по условию.
Исходный код выглядит так:
" set @im = (select max(cod) from log)
set @iom = isnull((select min(idmail) from opd_sbmail where idmail>@im),0)
if (@iom>0)
begin
select ...
insert into ...
else
select ...
insert into ...
end"
Подключаюсь по ADO. Хотелось бы использовать привычные соединения, без переменных, одним запросом.
|
|
1
ДенисЧ
04.06.15
✎
08:45
|
Есть очень хорошая команда MERGE. рекомендую
|
|
2
extrim-style
04.06.15
✎
09:01
|
(1) спс. будем попробовать.
|
|
3
Ненавижу 1С
гуру
04.06.15
✎
09:16
|
(1) не думаю, что это то что нужно, он же всё время только добавляет
|
|
4
ДенисЧ
04.06.15
✎
09:17
|
(3) И что? Для этого тоже вполне подходит
|
|
5
Ненавижу 1С
гуру
04.06.15
✎
09:20
|
(4) обоснуй
|
|
6
ДенисЧ
04.06.15
✎
09:21
|
(5) от обоснуя слышу )))
Предложи свой способ. Без переменных, одинм запросом.
|
|
7
Ненавижу 1С
гуру
04.06.15
✎
09:24
|
(6) да вот хрен знает, что там за условие, но мне кажется что-то типа
insert into ...
select coalesce(T1.X,T2.Y)
from T1
left join T2 on ...
|
|