Requête SQL Concaténer deux colonnes lors de la JOINTURE Interne
J'ai tables A et B avec la Table A vu la présence de plusieurs colonnes, y compris A1 et A2. Tableau B a aussi plusieurs colonnes.
Ma requête m'oblige à concaténer les valeurs de A1 et A2, puis faire une jointure interne sur B1.
Exemple:
Select *
From A
INNER JOIN B
ON CONCAT(A1,A2) = B1.
Apparemment ce n'est pas la façon dont il devrait fonctionner. Quelqu'un peut-il me donner un coup de main dans cette requête?
Grâce.
Quel type de Sql?
Ce n'est pas aussi efficace que la liaison de l'ID mais si c'est ce que vous avez besoin, alors c'est ce que vous avez besoin. Vous ne pouvez pas simplifier un problème au-delà de ses exigences de base!
MS-SQL? Si c'est votre qs. 😛
Eh bien, j'ai placé l'échantillon pour la concaténation des colonnes dans les plus représentés systèmes. mais oui, MS-SQL, fut la réponse à ma question.
Ce n'est pas aussi efficace que la liaison de l'ID mais si c'est ce que vous avez besoin, alors c'est ce que vous avez besoin. Vous ne pouvez pas simplifier un problème au-delà de ses exigences de base!
MS-SQL? Si c'est votre qs. 😛
Eh bien, j'ai placé l'échantillon pour la concaténation des colonnes dans les plus représentés systèmes. mais oui, MS-SQL, fut la réponse à ma question.
OriginalL'auteur Niras | 2012-03-22
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Six minutes semble excessif. Quelle quantité de données est-il de la lecture/retour? Aussi, gardez à l'esprit que la concaténation peut avoir des problèmes selon le type de données ou si A1 ou A2 est null.
pourquoi avez-vous accepté de Pedro réponse contre Andrey? Il semble que il plus directement répondu à votre question et a le plus upvotes. Alors que Pedro de la réponse ressemble plus belle et fournit plus de détails, si dans votre requête B1 555ABC, A1 a été 555, et A2 est ABC, sa réponse ne serait pas travailler en raison de l'ajout de l'espace, tandis que Andrey serait bien. Juste curieux de savoir si il a eu d'autres raisonnement derrière votre choix (je ne sais pas non plus de l'utilisateur)
Je suis d'accord avec Kevin et Lamak ici. Andrey, de la requête n'est pas à l'origine des problèmes de performances. C'est la structure de la table qui est à l'origine des problèmes, pas la requête. Pedro de la réponse est certainement très bien rédigé, quoique étant une réponse à une autre question.
Ok. Le diable derrière la mauvaise performance a été que je n'étais pas en cours d'exécution de la requête sur une table, mais sur une vue. Par conséquent, toutes les attendre. Merci de m'indiquer le problème en question les gars.
OriginalL'auteur Andrey Gurinov
Des échantillons de
Tableau De La Géographie
Exemple 1:
Pour MySQL/Oracle:
Exemple 2:
Pour Oracle:
Exemple 3:
Pour SQL Server:
A partir de là, vous pouvez vous adapter à deux tables sans trop de problème.
Dans le doute, utilisez une Table virtuelle pour rendre les choses plus lisibles.
En cas de doute vérifier cette autre question qui a été posée pour plus de détails.
StackOverFlow Question Similaire
OriginalL'auteur Pedro Ferreira