SQL INNER JOIN auf Text-Spalten
Ich habe zwei Tabellen (Ausrüstung & software), die ich tun möchte eine INNER JOIN
auf. Sie haben beide ein Feld namens EQCN. Es ist ein text Feld. Ich bekomme die folgende Fehlermeldung:
Den Datentypen text und text sind nicht kompatibel in den gleich-operator.
Gibt es einen Weg, um dieses.
- Wie lang ist der längste Eintrag in diesen Spalten?
- Bitte posten Sie Ihre SQL.
- Nicht wirklich nötig. Dies ist die Fehlermeldung, die Sie erhalten, wenn Sie versuchen und kommen mit 2 Spalten, die beide von der
text
Datentyp. - Fair genug. Ich habe nie versucht, um uns auf eine
text
Spalte 🙂 - Nein, scheint ungewöhnlich. Ich vermute, dass es wahrscheinlich nicht
text
/varchar(max)
. - Es macht mein Blut in den Adern gefrieren zu denken, dass jemand versucht, um uns auf text oder varchar(max). Dies sind Datentypen, die nicht verwendet werden sollte, in Verknüpfungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die Datentypen für diese Spalten zu
varchar(max)
.Von Microsoft:
Obwohl diese ungerade ist, empfiehlt Microsoft tut einen indirekten Vergleich auf text-oder ntext-mit so etwas wie SUBSTRING. Beispiel:
Dadurch stellt sich natürlich eine ganze Reihe von anderen Fragen wie, was ist, wenn die ersten # Zeichen sind identisch, etc. Ich würde vorschlagen, gehen den Weg der änderung der Art, wenn Sie zuerst, eher als nehmen Sie diese Ratschläge.
Quelle
Machst einen join auf ein TEXT-Feld wäre SEHR langsam, auch wenn es funktioniert hat. Vielleicht verwenden:
30
Zeichen und ändern Sie die Semantik.