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

poner condicion en where

Estas en el tema de poner condicion en where en el foro de SQL Server en Foros del Web. Hola a todos, creo que el titulo lo deja claro :p necesito hacer esto... SELECT * FROM <table> WHERE IF <CONDICION> VARIABLE = algo END ...
  #1 (permalink)  
Antiguo 21/04/2008, 08:35
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
poner condicion en where

Hola a todos, creo que el titulo lo deja claro :p

necesito hacer esto...

SELECT * FROM <table> WHERE
IF <CONDICION>
VARIABLE = algo
END IF

en plsql se puede hacer, en transact se puede? como?

ojala me puedan ayudar.

saludooooooos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #2 (permalink)  
Antiguo 21/04/2008, 09:28
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: poner condicion en where

Código:
Select * 
from Mitabla 
Where (Case When MiCondicion Then Algo Else OtraCosa End) =  ResultadoCondicion
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 21/04/2008, 09:58
Avatar de maralbust  
Fecha de Ingreso: febrero-2004
Ubicación: Santiago
Mensajes: 578
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: poner condicion en where

genial .... Andres95 les dejo la solucion para futuros post :)

Código:
SELECT *
	FROM VwEdicionTrabajosTerminados
	WHERE 1 = 1 and
      CodContratista = (CASE when @CodContratista IS NOT NULL THEN @CodContratista ELSE CodContratista END) AND
      LoginOperador = (CASE WHEN @LoginOperador IS NOT NULL THEN @LoginOperador ELSE LoginOperador END) and
      SectorTra = (CASE WHEN @SectorTra IS NOT NULL THEN @SectorTra ELSE SectorTra END) and
      CodEstadoTrans = (CASE WHEN @CodEstadoTrans IS NOT NULL THEN @CodEstadoTrans ELSE CodEstadoTrans END) and
      TipoTra = (CASE WHEN @TipoTra IS NOT NULL THEN @TipoTra ELSE TipoTra END) and
      CorrelativoTra is not null
en este caso uso una vista... pero es lo mismo

saludos
__________________
..:: NADA SE PIERDE SOLO SE TRANSFORMA ::..
  #4 (permalink)  
Antiguo 21/04/2008, 11:54
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Re: poner condicion en where

Si usas algo como esto:

Cita:
USE Northwind
GO

DECLARE @CategoryID INT
SET @CategoryID = NULL

SELECT *
FROM dbo.Categories
WHERE (@CategoryID IS NULL OR CategoryID = @CategoryID)

SET @CategoryID = 1

SELECT *
FROM dbo.Categories
WHERE (@CategoryID IS NULL OR CategoryID = @CategoryID)
Creo que cumple la misma función pero hace mas rápida la consulta.

Saludos.
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
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 13:16.