2012-12-28 3 views
-1

Il y a le champ dans ma requête appelé adresse. Maintenant, voici l'exigence: Si cette adresse est égale à un autre champ qui contient l'adresse de la donner quelques indications comme (*)Comparer les adresses

Pour exemple:

Ce champ: [adresse, ville, état] qui est concaténé en utilisant,. adresse, ville et état sont des champs différents dans la table. J'ai concaténé en utilisant,. Maintenant, je veux vérifier que tout ce champ est égal à un autre champ qui contient l'adresse, la ville, l'état.

Quelqu'un peut-il me donner un exemple de requête

+0

Vous voulez comparer [adresse, ville, état] séparément avec chaque colonne? –

Répondre

0

Si je vous comprends bien alors cela devrait fonctionner pour vous:

Select * From AddressTable at Where at.Address + ',' + at.City + ',' + at.State = @YourVariable 

Si l'une de vos variables ne sont pas basées sur le texte que vous auriez besoin de jeter avant concaténer, comme ci-dessous:

Cast(Name as NVarChar(max)) 
0

Si je comprends bien, le champ est concaténée la même table que les champs individuels et que vous cherchez à voir si les valeurs correspondre par enregistrement. Si tel est le cas, alors quelque chose comme ça

UPDATE [AddressTable] at 
SET at.[Indicator] = '*' 
WHERE at.[address,city,state] = at.[Address] + ',' + at.[City] + ',' + at.[State]; 
0

Si je comprends bien votre question, cela devrait être la solution:

SELECT 
    CASE 
    WHEN (SELECT COUNT(*) FROM AddressTable WHERE Address = a.Address) > 1 THEN '* ' + Address 
    ELSE Address 
    END 
FROM AddressTable a