Wie vergleichen Sie Zeichenfolgen, sodass der Vergleich nur dann wahr ist, wenn auch die Fälle der einzelnen Zeichenfolgen gleich sind? Beispielsweise:
Select * from a_table where attribute = 'k'
... gibt eine Zeile mit dem Attribut 'K' zurück. Ich möchte dieses Verhalten nicht.
sql
sql-server
Amccormack
quelle
quelle
Antworten:
Hat den Trick gemacht.
quelle
Latin1_General_CS_AS
ist eine Spezifikation der Sortierung. Die Sortierung bezieht sich auf eine Reihe von Regeln, die bestimmen, wie Daten sortiert und verglichen werden. Weitere Informationen finden Sie auf dieser Seite .Mit dieser Syntax können Sie dieses Attribut auch in Groß- und Kleinschreibung konvertieren :
Jetzt wird bei Ihrer Suche zwischen Groß- und Kleinschreibung unterschieden .
Wenn Sie die Groß- und Kleinschreibung dieser Spalte wieder unempfindlich machen möchten , verwenden Sie
quelle
Sie können Spalten einfach in VARBINARY (Max Length) konvertieren. Die Länge muss das Maximum sein, das Sie erwarten, um einen fehlerhaften Vergleich zu vermeiden. Es reicht aus, die Länge als Spaltenlänge festzulegen. Die Spalte "Trimmen" hilft Ihnen beim Vergleichen des tatsächlichen Werts, außer dass der Leerzeichen eine Bedeutung und einen Wert in Ihren Tabellenspalten hat. Dies ist ein einfaches Beispiel. Wie Sie sehen können, schneide ich den Spaltenwert und konvertiere und vergleiche:
Ich hoffe das hilft.
quelle
Genau wie eine andere Alternative könnten Sie HASHBYTES verwenden, ungefähr so:
quelle
Sie können festlegen ,
attribute
wieBINARY
oder verwendenINSTR
oderSTRCMP
Ihre Suche durchzuführen.quelle
INSTR
undSTRCMP
Funktionen.