Как Сравнить две строки с помощью если в хранимой процедуре в SQL-сервере 2008?

Я хочу сделать что-то вроде этого:

declare @temp as varchar
    set @temp='Measure'

if(@temp == 'Measure')
   Select Measure from Measuretable
else
   Select OtherMeasure from Measuretable
13
задан OMG Ponies 20 May 2010 в 20:41
поделиться

3 ответа

Две вещи:

  1. Для вычисления нужен только один (1) знак равенства
  2. Вам нужно , чтобы указать длину в VARCHAR - по умолчанию это один персонаж.

Использование:

DECLARE @temp VARCHAR(10)
    SET @temp = 'm'

IF @temp = 'm'
  SELECT 'yes'
ELSE
  SELECT 'no'

VARCHAR (10) означает, что VARCHAR вмещает до 10 символов. Еще примеры поведения -

DECLARE @temp VARCHAR
    SET @temp = 'm'

IF @temp = 'm'
  SELECT 'yes'
ELSE
  SELECT 'no'

... вернет «да»

DECLARE @temp VARCHAR
    SET @temp = 'mtest'

IF @temp = 'm'
  SELECT 'yes'
ELSE
  SELECT 'no'

... вернет «нет».

21
ответ дан 1 December 2019 в 21:51
поделиться
declare @temp as varchar
  set @temp='Measure'
  if(@temp = 'Measure')
Select Measure from Measuretable
else
Select OtherMeasure from Measuretable
1
ответ дан 1 December 2019 в 21:51
поделиться

Вам нужен оператор case SQL. Форма их:

  select case [expression or column]
  when [value] then [result]
  when [value2] then [result2]
  else [value3] end

или:

  select case 
  when [expression or column] = [value] then [result]
  when [expression or column] = [value2] then [result2]
  else [value3] end

В вашем примере вы после:

declare @temp as varchar(100)
set @temp='Measure'

select case @temp 
   when 'Measure' then Measure 
   else OtherMeasure end
from Measuretable
1
ответ дан 1 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: