SQL: работа с переменными - PullRequest
       1

SQL: работа с переменными

0 голосов
/ 03 января 2011

Мне нужно это, чтобы вернуть логическое значение, если выполняется следующее условие, но я продолжаю получать синтаксические ошибки

declare @OverLimit bit = 0  
declare @var int

set @var = Select count(pkid)
             From Clicks

If @var > 720,000 then
  @OverLimit = 1

Select @OverLimit

Ответы [ 5 ]

1 голос
/ 03 января 2011

Попробуйте:

declare @OverLimit bit = 0
declare @var int

SELECT @var = count(pkid) From Clicks

If @var > 720000 SET @OverLimit = 1

Select @OverLimit

Или, альтернативно:

SELECT CASE WHEN COUNT(pkid) > 720000 THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END AS Overlimit
FROM Clicks
1 голос
/ 03 января 2011

Вот версия с исправленными синтаксическими ошибками:

declare @OverLimit bit = 0 declare @var int

set @var = (Select count(pkid) From Clicks)

If @var > 720000 SET @OverLimit = 1

Select @OverLimit

Проблемы были:

Требуется оператор set-select в скобках

Запятая зарезервирована (снял его)

1 голос
/ 03 января 2011

Вы можете попробовать прочитать руководство по SQL, а также сообщения об ошибках и разобраться с основными синтаксическими проблемами:

declare @OverLimit bit
set     @Overlimit = 0

declare @var int
select  @var = count(pkid) From Clicks

If @var > 720000 set @OverLimit = 1

select @OverLimit
0 голосов
/ 03 января 2011

Так как вы не перечислили конкретные ошибки, вот несколько строк, которые я бы порекомендовал исправить.

  • Изменить с:

    set @var = Select count(pkid) from Clicks
    

    На:

    set @var = (Select count(pkid) from Clicks)
    
  • удалить запятую из 720 000

  • удалить «затем» из оператора If и вставить «Set»:

    If @var > 720000
       set @OverLimit = 1
    
0 голосов
/ 03 января 2011

Хотелось бы, чтобы у меня был доступ к SQL, когда я пишу это для тестирования, но не так ли это

set @var = Select count(pkid) From Clicks

try

 Select @var=count(pkid) From Clicks
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...