Ir al contenido principal

Decisiones en consultas SQL

Hace un tiempo me tope con  una consulta en SQL a la cual debía añadir una decisión  entonces pensé que seria muy bueno que existiera un if o un case para dicha tarea después de intentar generar una función y darme cuenta que el rendimiento disminuía demasiado entonces investigue un poco y me entere que en efecto dicha instrucción existía. con la siguiente sintaxis

SELECT CASE ("nombre_columna")
  WHEN "condición1" THEN "resultado1"
  WHEN "condición2" THEN "resultado2"
  ...
  [ELSE "resultadoN"]
  END
FROM "nombre_tabla"





Un ejemplo sencillo se usaría de la siguiente  manera, se tiene una tabla persona se almacena el sexo en forma numérica y se desea mostrar al usuario.


Select nombre, case sexo when 1 then 'Masculino'
                                       when 2 then 'Femenino'
                                       Else 'Indefinido'
                                       End
From persona


Luego en otra tarea me encontré que necesitaba una decisión en un campo que podría tener valores nulos, para escoger si el campo es nulo mostrar que fue generado por el sistema si el campo no es nulo mostrar el registro del usuario que había generado el registro, entonces recurrí al case y me di cuenta que me tiraba algunos errores cuales eran o me mostraba todos los campos null o me mostraba como si no existiese el select como lo resolví, busque de nuevo y encontre la funcion isnull.


ISNULL( columna_debusqueda,dato_dereemplazo)


Entonces en esa columna reemplaza todos los datos nulos con el datos_dereemplazo que le indicamos entonces por ejemplo


ISNull(RegistroIdentificacion,'No presento identificacion')


Para la columna RegistroIdentificacion  reemplazara todos los datos Null por la cadena 'No presento identificacion'


esto lo hize para Sql server 2000

Comentarios

Entradas populares de este blog

DISEÑO AL NIVEL DE COMPONENTES

El diseño a nivel de componentes se presenta a menudo despues que se ha terminado la primera iteracion del diseño arquitectonico. y  el objetivo de esta fase es traducir el diseño en software operaciona. El diseño a nivel de componentes define las estructuras de datos, los algoritmos, las caracteristicas de la interfaz  y los mecanismos de comunicacion asignados a cada componente de software. esta fase permite revisar si los detalles de diseño son correctos y consistentes con las representaciones iniciales de diseño ¿QUE ES UN COMPONENTE? Es un bloque de construccion modular par el software de computo. una parte modular desplegable y reemplazable de un sistema que encapsula implementacion y expone un conjunto de interfaces. desde el punto de vista orientado a objetos un componente es un conjunto de clases ques se interrelacionan entre si. en el contexto convencional de ingenieria de software  un componente es un elemento funcional que incorpora  la logica del procesamiento y

ESTRATEGIAS DE PRUEBAS DE SOFTWARE

La estrategia de pruebas de software proporciona un mapa que describe los pasos que se daran como parte de la prueba indica cuando se planea y cuando se daran dichos pasos ademas cuanto tiempo, esfuerzo y recursos consumiran. un software se prueba para descubrir los errores cometidos, si se realiza sin ningun plan seguramente se desperdiciara tiempo, se dedicara un esfuerzo innecesario y lo que es peor puede que no se detecten los errores. Las pruebas se deben planificar con anticipacion y realizarlas de manera sistematica por lo que es importante tener una plantilla existen diferentes y en general tienen los siguientes pasos. 1. Revisiones tecnicas formales y efectivas 2. Se inicia a nivel de componentes y se trabaja hacia afuera hacia la integracion del sistema 3. Diferentes tecnicas en diferentes momentos 4. las pruebas las dirige el desarrollador 5. la prueba y la depuracion son actividades diferentes, pero la segunda debe incluirse en cualquier estrategia de pruebas. l

AGE OF EMPIRES ERROR INICIALIZAR DIRECT 3D

Instale age of empires 3 pero no me corria me salia un mensaje de error al inicializar posibles causas direct 3d y otras que no me acuerdo la solucion luego de buscar: abrir el archivo mis documentos\my games\Age of empires 3\users\NewProfile.xml en block de notas setting name="optiongrfxres">etting Name="optiongrfxres">1280 x 720 colocar los parametros en la configuarcion que tiene el ordenador en mi caso es wide screen 1280 X 720 Setting Name="optionrefreshrate">75 esta configuracion se mira en inicio > panel de control > apariencia y temas >pantalla lengeta configuarcion > boton opciones avanzadas lengueta adaptador > boton listar modos alli colocas el modo que queres y lo pones en el archivo newProfile.xml