Sieht aus wie SQL Server (versucht auf 2008 R2) macht RTRIM
auf Spalten in GROUP BY
Klausel. Hat das jemand bemerkt? Fehle ich hier etwas?SQL Server verworfen SPACE während GROUP BY
Die beiden Auswahlen geben das gleiche Ergebnis zurück, das in der folgenden Abfrage gesetzt wurde. Das sollte nicht der Fall sein, der ich glaube.
declare @t table(Name varchar(100), Age int)
insert into @t values ('A', 20)
insert into @t values ('B', 30)
insert into @t values ('C', 40)
insert into @t values ('D', 25)
insert into @t values (' A', 21)
insert into @t values ('A ', 32)
insert into @t values (' A ', 28)
select
Name,
count(*) Count
from @t
group by Name
select
rtrim(Name) RtrimmedName,
count(*) Count
from @t
group by rtrim(Name)
Bitte lassen Sie mich Ihre Meinung wissen ...
Nicht wirklich. Der Standard behauptet also, er passe auf die maximale Länge * zum Vergleich *, aber die Frage bezieht sich auf die Ausgabe von GROUP BY, was ** NICHT ** der längere ist, wie man es erwarten würde, wenn die Intermediäre verlängert würden (Sie sind nicht).Es ist einfach das "a" = "a" (Leerzeichen ignoriert) – RichardTheKiwi
@RichardTheKiwi - Abschnitt 8.2 "Abhängig von der Sortierreihenfolge können zwei Zeichenfolgen gleich sein, auch wenn sie unterschiedlich lang sind oder Wenn die Operationen MAX, MIN, DISTINCT auf eine Gruppierungsspalte verweisen und die Operatoren UNION, EXCEPT und INTERSECT auf Zeichen strings verweisen, ** der von diesen Operationen ausgewählte spezifische Wert aus a Satz solcher gleicher Werte ist implementationsabhängig. ** "(Hervorhebung hinzugefügt) –