if dentro de un select

amblin
13 de Marzo del 2005
digamos que tengo el sgte codigo
select id, valor1,valor2,STR(valo1r,1) +'/' + STR(valor2,1)
form tabla
hasta ahy todo bien pero necesito porder introducir un id dentro del select para poder cambiar el tamamaño a agregar por ej
select id, valor1,valor2,
( IF( valor1)<10
Begin
STR(valo1r,1) +'/' + STR(valor2,1)
END
ELSE
BEGIN
STR(valo1r,2) +'/' + STR(valor2,2)
form tabla

desde ya muchas gracias

David
13 de Marzo del 2005
Hola

Trágicamente, no hay IF...ELSE en el estándar SQL. Sí lo puedes encontrar, si trabajas con SQL Server (TSQL), Oracle, FireBird, InterBase, etc., en el lenguaje de procedimientos almacenados de cada SGBD, que posibilitan contruir una función que devuelve tablas, valores integrales, ... que se almacena en la propia base de datos, y a la que puedes invocar como a cualquier tabla de la base de datos.

Salud

David

Salud

David

Isa? Islas
13 de Marzo del 2005
Ya di una respuesta en PORTALSQL.

David, no existe el IF dentro del SELECT, pero si existe el CASE, que para el caso, es lo mismo.

Saludos

juanin
13 de Marzo del 2005
La instruccion case sería así:

select id, valor1,valor2,
CASE WHEN (valor1<10) THEN
STR(valo1r,1) +'/' + STR(valor2,1)
ELSE STR(valo1r,2) +'/' + STR(valor2,2)
END as expresion
form tabla