2016-03-09 1 views

Répondre

4

Manière correcte:

couper vos données et les stocker sous forme propre si possible.


Vous pouvez également utiliser et sous-requête décider si elle est plus lisible:

SELECT Address1 
FROM (SELECT LTRIM(RTRIM(Address1)) AS Address1, Address2 
     FROM Customers) AS sub 
WHERE Address1 = Address2 
+0

Merci - cela fonctionne. Est-ce qu'il exécute le SELECT deux fois cependant? Je me demandais simplement en termes d'efficacité. – keldar

+1

@keldar Utilisez les deux requêtes, mettez-les en surbrillance, cochez 'show execution plan' et comparez. Je suppose qu'il ne devrait y avoir aucune différence. L'optimiseur de requêtes est assez intelligent – lad2025

+2

@keldar C'est la bonne réponse. Le script fourni ci-dessus est une solution de contournement pour la "bonne manière". Si vous recherchez "l'efficacité", résolvez-la en utilisant la méthode correcte, c'est-à-dire ** Coupez vos données et stockez-les dans un format propre si possible. **. Sinon, cette requête ainsi que la vôtre n'auront qu'une différence marginale en termes de plan d'exécution, je suppose. –