Trabajo con SQL Server 2008
necesito comparar valores entre dos tablas si los datos son iguales ponerle un equivalente.
Tengo el siguiente código de ejemplo:
declare @tmpEmpleado table (FirstName varchar(100));
Insert into @tmpEmpleado(FirstName)
values
('Nancy'),
('Andrew'),
('Janet'),
('Steven');
DECLARE @Equivalencias TABLE(Nombre VARCHAR(100), NombreEquivalente VARCHAR(100))
INSERT into @Equivalencias(Nombre, NombreEquivalente) VALUES('Andrew', 'Batman')
,('Steven', 'Superman')
,('Nancy', ' ')
Comparo la tabla @tmpEmpleado con la tabla @Equivalencias
si los valores del campo FirstName
es igual a Nombre
entonces ponerle el valor del campo NombreEquivalente
de la tabla @Equivalencias
, pero si en equivalencias es igual a ''
poner el valor del campo FirstName
, si FirstName
no tiene valor de igualdad en el campo Nombre
poner el valor de FirstName
.
He intentado lo siguiente:
select FirstName,
case when temp.FirstName = equiVal.Nombre then equiVal.NombreEquivalente
when temp.FirstName = equiVal.Nombre and equiVal.NombreEquivalente = '' then temp.FirstName
when temp.FirstName = null then temp.FirstName
end as Equivalencia
from @tmpEmpleado temp
join @Equivalencias equiVal on temp.FirstName = equiVal.Nombre
El resultado que espero es el siguiente:
Nancy Nancy
Andrew Batman
Janet Janet
Steven Superman