Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Comparar columna con variable y mostrar falso o verdadero

Estas en el tema de Comparar columna con variable y mostrar falso o verdadero en el foro de SQL Server en Foros del Web. Hola compañeros del foro Espero alguien me pueda ayudar o dar alguna pista por donde buscar verán realizo una consulta en sql server 2008 con ...
  #1 (permalink)  
Antiguo 24/07/2011, 21:46
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Comparar columna con variable y mostrar falso o verdadero

Hola compañeros del foro

Espero alguien me pueda ayudar o dar alguna pista por donde buscar

verán realizo una consulta en sql server 2008 con la cual obtengo una tabla con 3 campos

Categoria | Items | CatId

y mediante la url recibo un parametro que he llamado CatSel (categoria seleccionada), ahora bien lo que necesito y no he encontrado es crear una cuarta columna basada en la comparacion de la columna Categoria y CatSel que debe mostrar falso o verdadero según sea el caso

llevo varios días googleando y todo lo que encuentro son comparativas para mostrar solo los datos que coincidadan

por si les sirve esta es la consulta actual que tengo (también se aceptan sugerencias si ven algo para optimizar la consulta)

Código SQL:
Ver original
  1. SELECT t1.VALUE AS Categorias, COUNT(t1.VALUE) AS Items, rank() OVER(ORDER BY t1.VALUE ASC) AS CatId
  2. FROM
  3. dbo.KB_XMod_Modules t0 --FormId
  4. JOIN (SELECT * FROM dbo.KB_XMod_Index_VC50
  5. UNION SELECT * FROM dbo.KB_XMod_Index_VC100
  6. UNION SELECT * FROM dbo.KB_XMod_Index_VC400) t1 ON t1.XmodID = t0.XModId --Categorias
  7. JOIN dbo.KB_XMod_Index_VC50 t3 ON t3.XmodID = t1.XmodID AND t3.[KEY] = 'cboEnhancedListing' AND t3.mask = 2 --Aprobacion
  8. WHERE t0.FormId = 2 AND t1.[KEY] = 'cboCategory' AND t3.[VALUE] <> '' AND t0.[Approved] = 'true' AND t1.mask = 2 GROUP BY t1.VALUE ORDER BY t1.VALUE

de antemano muchas gracias...
  #2 (permalink)  
Antiguo 25/07/2011, 07:45
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparar columna con variable y mostrar falso o verdadero

si quieres sacar un valor dependiendo una columna la sintaxis es

select
case
when valor=true then 'esto' else 'esto' end as columna
from tabla

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 25/07/2011, 21:08
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Comparar columna con variable y mostrar falso o verdadero

hola compañero @Libras

muchas gracias por responder... corrígeme si me equivoco pero el case es para ejecutar una consulta u otra según la variable recibida

haber si con un par de imágenes se entiende mejor lo que busco o igual si hay una forma de utilizar el CASE para conseguir el resultado deseado podrías darme un ejemplo?

imagen 1 .- resultado actual de la consulta SQL


imagen 2- resultado deseado
  #4 (permalink)  
Antiguo 25/07/2011, 22:56
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 14 años, 5 meses
Puntos: 7
Respuesta: Comparar columna con variable y mostrar falso o verdadero

Lo que te menciona el amigo Libras es valido, nada mas que tendrías que desglosarlo tu.

Código SQL:
Ver original
  1. SELECT ....
  2. ,CASE catid WHEN Valorbuscado THEN 'true' ELSE 'false' END AS [CatSel]
  3. FROM ....
  4. WHERE ...
  #5 (permalink)  
Antiguo 26/07/2011, 09:26
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Comparar columna con variable y mostrar falso o verdadero

Compañeros @Libras y @Joch_pa mil gracias por su ayuda!!!

Con la coma (,) que puso joch_pa antes del CASE entendí donde y como debía aplicarlo y ha resultado a la perfección

Gracias!!!

Etiquetas: columna, select, server, sql, tabla, variables, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:18.