2010-05-20 11 views

Respuesta

16

Dos cosas:

  1. sólo necesita un (1) signo igual para evaluar
  2. Usted necesidad especificar una longitud en VARCHAR: el valor predeterminado es un solo carácter.

Uso:

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

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

VARCHAR(10) significa que el VARCHAR con capacidad para hasta 10 caracteres. Más ejemplos de la conducta -

DECLARE @temp VARCHAR 
    SET @temp = 'm' 

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

... volverán "sí"

DECLARE @temp VARCHAR 
    SET @temp = 'mtest' 

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

... volveremos "no".

1
declare @temp as varchar 
    set @temp='Measure' 
    if(@temp = 'Measure') 
Select Measure from Measuretable 
else 
Select OtherMeasure from Measuretable 
+0

Esto no funciona para mí Lo probé. – Vishal

+3

@VJ: Eso es porque '@temp VARCHAR' significa que @temp solo almacenará el primer carácter; el resto se trunca sin error. –

+0

@VJ introduce un parámetro, no ajuste el valor a la temperatura – Andrey

1

Lo que desea es una declaración de caso de SQL. la forma de estas dos condiciones siguientes:

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

o:

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

En el ejemplo que está buscando:

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

select case @temp 
    when 'Measure' then Measure 
    else OtherMeasure end 
from Measuretable 
1

También puede probar esto por cadena de búsqueda.

DECLARE @temp1 VARCHAR(1000) 
    SET @temp1 = '<li>Error in connecting server.</li>' 
DECLARE @temp2 VARCHAR(1000) 
    SET @temp2 = '<li>Error in connecting server. connection timeout.</li>' 

IF @temp1 like '%Error in connecting server.%' OR @temp1 like '%Error in connecting server. connection timeout.%' 
    SELECT 'yes' 
ELSE 
    SELECT 'no' 
Cuestiones relacionadas