J'ai une requête qui est la sélection d'un tas de domaines liés aux noms et adresses des clients, mais cela se résume à:Pourquoi "SELECT DISTINCT a, b FROM ..." renvoie-t-il moins d'enregistrements que "SELECT DISTINCT A + '|' + B DE ... "?
SELECT DISTINCT a, b, c, ... FROM big_dumb_flat_table
il retourne un tas de dossiers (10986590). Quand je remplace les virgules dans la liste de sélection pour mettre en forme comme un tuyau séparé chaîne concaténée:
SELECT DISTINCT a + '|' + b + '|' + c + '|' + ... FROM big_dumb_flat_table
il est de retour 248 autres enregistrements. Je me suis assuré qu'il n'y a pas de tuyaux dans aucun des champs qui pourraient visser la fidélité de l'ensemble retourné. Que se passe t-il ici?
Pourriez-vous voir ce que vous obtenez avec 'SELECT a, b, c ... FROM ... GROUPE PAR a, b, c ...' et l'éditer dans votre question? (comme 'DISTINCT' est techniquement un hack (très pratique)) – AakashM
Ajoute également le nombre (*) aux requêtes et vois ce que cela donne – Mark
Je m'attendrais à ce que la requête utilisant la concaténation retourne ** ** moins d'enregistrements, puisque si l'un des les valeurs sont 'null' vous obtiendrez un résultat' null'. – RedFilter