MS SQL: выбор во временную таблицу по условию #754797


#0 by extrim-style
Подскажите как выбрать во временную таблицу по условию? Если делаю так: if object_id('tempdb..#idmails') is not null drop table #idmails if @idmail = 0     begin         select 5 as test     end else     begin         select 6 as test     end то получаю ошибку "There is already an object named '#idmails' in the database."
#1 by МихаилМ
ошиблись  форумом. Вам на sql.ru
#2 by rs_trade
не уверен что tempdb писать надо. скуль сам знает где у него временные таблицы лежат.
#3 by rs_trade
норм. все интересней чем вопросы про не обнаруженное поле агрегатного объекта.
#4 by 1Сергей
воспользуйся кейсом
#5 by extrim-style
прочел как "не знаю, но стыдно признаться"
#6 by Господин ПЖ
а чо его искать? drop table #idmails и все
#7 by extrim-style
это есть в
#8 by extrim-style
пробовал, не получилось. Сейчас приведу пример.
#9 by МихаилМ
зачем указвать  # в ..#idmails в контекте tempdb ?
#10 by 1Сергей
if object_id('tempdb..#idmails') is not null drop table #idmails select     CASE         WHEN @idmail = 0 THEN 5         ELSE 6     END as test into #idmails
#11 by extrim-style
вроде бы это более-менее стандартная команда уничтожения временных таблиц?
#12 by 1Сергей
SQL - это не язык программирования
#13 by N1kMZ
if object_id('tempdb..#idmails') is not null drop table #idmails select     CASE         WHEN @idmail = 0 THEN 5         ELSE 6     END as test
#14 by N1kMZ
Потому что будет: Cannot drop the table '#idmails', because it does not exist or you do not have permission.
#15 by extrim-style
в - упрощенная задача на самом деле мне нужно так: if object_id('tempdb..#idmails') is not null drop table #idmails declare @idmail int select 5 as idmail union all select 7 as idmail where case      when @idmail=0 then idmail > 6      when @idmail<>0 then idmail = @idmail     end Как это правильно обставить?
#16 by extrim-style
+ в этом случае ругается на Incorrect syntax near '>'. Но, видимо, так и нельзя строить код, т.к. после "then" подразумевается конкретное выражение, а не условие.
#17 by 1Сергей
ты заполняешь временную таблицу из которой тут же берёшь данные?
#18 by extrim-style
нет, я хочу заполнить временную таблицу в зависимости от условия
#19 by Гёдза
а разве селект инто сам делает криэйт?
#20 by 1Сергей
вот эту порнографию where case      when @idmail=0 then idmail > 6      when @idmail<>0 then idmail = @idmail     end замени на where (@idmail=0 AND idmail > 6) OR (@idmail<>0 AND idmail = @idmail)
#21 by rs_trade
конэчно
#22 by extrim-style
Спасибо!
#23 by extrim-style
+ ...претендую на пятничность)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С