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

Problema en If Exists en SQL

Estas en el tema de Problema en If Exists en SQL en el foro de SQL Server en Foros del Web. Buen día expertos, Mi inquietud es la siguiente, hace varios días he intentado hacer algo que en un principio no me parecia cosa de otro ...
  #1 (permalink)  
Antiguo 22/05/2012, 07:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Mensaje Problema en If Exists en SQL

Buen día expertos,

Mi inquietud es la siguiente, hace varios días he intentado hacer algo que en un principio no me parecia cosa de otro mundo pero ahora me esta partiendo la cabeza

Trabajo con:

SQL Server 2008 R2

Visual Studio 2010 (ASP.net)

Descripcion del problema:

Tengo una consulta parecida a esta

SELECT per_cedula,per_nombre FROM Tbl_Persona WHERE per_cedula IN(12345,98635442)

--

Esta consulta obviamente me da los resultados que cumplen la condicion where en este caso para la cedula 98635442, pero yo quiero que me muestre NULL para el caso de la otra cedula

es decir algo como:

CEDULA NOMBRE

98635442 Pepito Pérez

123456 NULL

Esto es posible? he intentado con todo creo yo, se que debe ser algo muy bobo, pero no doy con la forma de hacerlo.
  #2 (permalink)  
Antiguo 22/05/2012, 09:30
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema en If Exists en SQL

Pues podrías crear una tabla temporal

select * into #tabla from tabla

update #tabla set nombre= null where cedula not in ('98635442')
  #3 (permalink)  
Antiguo 22/05/2012, 10:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Sonrisa Respuesta: Problema en If Exists en SQL

Gracias por tu respuesta.
Pero no necesito actualizar registros ni nada parecido.
Requiero el hacer una consulta estableciendo una lista de condiciones (WHERE IN)
pero que me de como resultado tanto los que existan como los que no existen...


Yo obtengo las cedulas de otra base de datos, hago esta consulta para ver si estas cedulas se encuentran registradas en mi tabla Tbl_Persona, pretendo hacer que para los usuarios que no existen ( los que se muestran en null) el usuario pueda identificarlos y posteriormente registrarlos al sistema.
Por eso requiero que aun si no esta (intente con IF NOT EXISTS pero tampoco) la Cedula, me muestre la Cedula, pero el resto de columnas del Select en NULL o cualquier otra cosa :)
  #4 (permalink)  
Antiguo 22/05/2012, 10:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema en If Exists en SQL

Ah ya, se me ocrurrió otra cosa:

Prueba este código que tiene CASE.

SELECT per_cedula,case per_cedula when '98635442' then nombre_cedula else null end FROM Tbl_Persona WHERE per_cedula IN(12345,98635442)

Saludos.
  #5 (permalink)  
Antiguo 22/05/2012, 11:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema en If Exists en SQL

jeje nop nada aun.. me retorna

Cedula [No column name]
98635442 98635442


:(
  #6 (permalink)  
Antiguo 22/05/2012, 11:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: Problema en If Exists en SQL

Crea una tabla temporal, como bien dice sirguille e introduces tus CEDULAS en cuestion (12345,98635442) o las que sean.

Haces un JOIN FULL con ambas tablas y seguramente te dara el resultado de la que no encuentre en NULL
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 22/05/2012, 11:27
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema en If Exists en SQL

UFFF no sabes la partida de cabeza que me pegue con eso..
Si, solucionado con lo que me dijiste
Tabla temporal y luego un FULL JOIN
Excelente gracias

Etiquetas: exists, select, server, sql
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 22:09.