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

Откуда: Пенза
Сообщений: 15
Добрый день! Есть таблица tt c полями Name, ref1c82 и Code.

Делаю запрос следующего плана- выбираю из tt Name c заданным фильтром.
Далее смотрю- если запрос не вернул ниодного результата то добавляем в tt в поля Name и Code значение. Встала загвостка в ЕСЛИ.

SELECT     code, Name
FROM         tt
WHERE  if NOT   EXISTS 
( SELECT Name
  FROM tt
  WHERE Name = 'Sovchozhaja 15' )
then begin 
insert Into tt(code, Name) value (max(code+1),Name) 
END
6 дек 11, 16:25    [11714495]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
 if NOT   EXISTS 
( SELECT *
  FROM tt
  WHERE Name = 'Sovchozhaja 15' )
insert Into tt(code, Name) 
select top 1 code+1,Name
order by code desc


?
6 дек 11, 16:49    [11714713]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
_radomir_,

Может, что-то такое?

SELECT CASE WHEN Name IS NULL THEN code ELSE Name END
  FROM tt
  WHERE Name = 'Sovchozhaja 15'
6 дек 11, 17:05    [11714886]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
_radomir_
Member

Откуда: Пенза
Сообщений: 15
Knyazev Alexey,

if NOT   EXISTS 
( SELECT Name,code
  FROM tt
  WHERE Name = 'Sovchozhaja 15' )
--then 
insert Into tt(code, Name) select top 1 code+1, Name from tt
order by code desc


код заносит верно, но дублирует занчеие имени- пишет уже котрое есть в базе, а не новое. В данном случае Name = 'Sovchozhaja 15'
6 дек 11, 17:27    [11715149]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
_radomir_
Knyazev Alexey,

if NOT   EXISTS 
( SELECT Name,code
  FROM tt
  WHERE Name = 'Sovchozhaja 15' )
--then 
insert Into tt(code, Name) select top 1 code+1, Name from tt
order by code desc


код заносит верно, но дублирует занчеие имени- пишет уже котрое есть в базе, а не новое. В данном случае Name = 'Sovchozhaja 15'


if NOT   EXISTS 
( SELECT Name,code
  FROM tt
  WHERE Name = 'Sovchozhaja 15' )
--then 
insert Into tt(code, Name) select top 1 code+1, 'Sovchozhaja 15'  from tt
order by code desc
6 дек 11, 17:33    [11715213]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
_radomir_
Member

Откуда: Пенза
Сообщений: 15
Knyazev Alexey,

Алексей, премного Вам признателен!
6 дек 11, 17:52    [11715445]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить