2008-11-20 7 views
9

¿Cómo devuelvo una constante de una instrucción sql?¿Cómo se devuelve una constante de una instrucción sql?

Por ejemplo ¿cómo puedo cambiar el código de abajo por lo que "mi mensaje" volvería si mi (expresión booleana) era cierto

if (my boolean expression) 
"my message" 
else 
select top 1 name from people; 

que estoy usando MS SQL 2000

Respuesta

17

¿Usted intentó:

select 'my message'; 
+0

Es posible que desee incluir un nombre de campo para que coincida con la condición else. – BoltBait

+1

Esto parece omitir la condición? –

4

no tengo MSSQL a mano, pero comprueba la sintaxis de la instrucción CASE en caso de que lo tengo mal y también no estoy seguro de si la parte superior 1 debe salir a la calle el caso como lo pongo aquí o si se debería ir adentro (nombre ELSE TOP 1). La idea es:

SELECT TOP 1 CASE WHEN myexpression = 'true' THEN 'my message' ELSE name END 
FROM people; 

Aquí myexpression tiene que ser constantes o relacionados con las tablas presentes en la consulta, por ejemplo

CASE WHEN address LIKE '%Michigan%' 

donde dirección es otro campo en el pueblo de mesa.

PS: Encontrado la sintaxis MSSQL CASO here :-)

4
select "my message" as message 
+0

¿Esto omite la condición? –

+0

La pregunta no era cómo hacerlo condicionalmente. :) – Kon

0

Acabo de intentar esto en la base de datos AdventureWorks y funciona

Use AdventureWorks 

Declare @myVar int 
SET @myVar = 1 

if (@myVar = 2) 

    select top 2 * from HumanResources.Department 

else 

    select top 1 * from HumanResources.Department 
0
select top 1 name 
from people 
where @MyParameter = whatever 

union 

select 'my message' as name 
where @MyParameter != whatever 

Todo en un comunicado.

Cuestiones relacionadas