mssql: Query erkennt String mit Bindestrich nicht (SQLServer 2008)

DrBonsai

Mitglied
Hallo,

vorweg: Ich nutze mssql-Server2008

Ich habe eine Variable, die folgenden string enthält:
"ACOPLE TORRES 3000 -PUNTERA-"
Jetzt möchte ich die Referenz dieses String aus meiner mssql-Tabelle fischen. Ganze einfach Abfrage:
PHP:
select ref from st where design = 'ACOPLE TORRES 3000 -PUNTERA-'

Allerdings liefert das kein ergebnis zurück. Erst wenn ich die Bindestriche aus der Query nehme, kommt meine Referenz zurück.

(So:
PHP:
 select ref from st where design LIKE 'ACOPLE TORRES 3000 %'
)

Ich kann aber nicht den String immer abschneiden, da dann ggf auch mal mehrdeutige strings entstehen.

Weiß jemand woran das liegt, bzw. wie ich es abstellen kann?

mfg,
David
 
Hallo,

Versuche es mal Mit upper()

Code:
select ref from st where Upper(design) = upper('ACOPLE TORRES 3000 -PUNTERA-' );

vll geht es so ?

du musst auch aupassen wenn du nur ein leerzeichen mehr in deiner Anbfrage hast als in deiner Tabelle, kommt da auch nichts zurück


Das könntest du aber mit TRIM() umgehen.

Code:
select ref from st where Trim(Upper(design)) = Trim(upper('ACOPLE TORRES 3000 -PUNTERA-' ));

lg
 
Hast du schon Trim versucht ?
"Trim" scheint es in mssql nicht zu geben. Dafür aber "ltrim" und "rtrim". Habs beides versucht!
Code:
select ref from st where ltrim(rtrim(Upper(design))) = ltrim(rtrim(upper('ACOPLE TORRES 3000 -PUNTERA-' )));
und es kommt nichts dabei raus.
ist das was in der - - steht immer anders ?

Der ganze String ist immer anders. Das kann mal der genannte sein, oder auch "Chumbadouro p/tronco piramidal 20M p/montagem de aerogerador" oder vllt. in Zukunft auch mal "hjsdfsdas", wenn jemand ein Produkt mit diesem Namen entwickelt.

mfg,
David
 
Zuletzt bearbeitet:
Hallo

versuchs mal so

select ref from st where design = 'ACOPLE TORRES 3000 \-PUNTERA\-'

Mit hilfe des Backslash nimmt SQL das sonderzeichen wörtlich
 
Nope,
das haut auch nicht hin. Habe noch was merkwürdiges entdeckt:
Folgendes gibt bei einem anderen Produkt die richtige Referenz zurück
Code:
select * from st where design LIKE 'Bomba calor agua-agua IS-WW 12 (com arrefecimento)'
Ein weiteres Produkt der gleichen Reihe (mit fast identischem Namen) liefert aber kein Ergebnis
Code:
select * from st where design LIKE 'Bomba calor agua-agua IS-WW 8 (com arrefecimento)'

Das kann doch eigentlich gar nicht sein.
 
Hab ich schon in sämtlichen Kombinationen durch.

Ich raffs nicht. Eigentlich müsste es hinhauen, mit Allem, was du so vorgeschlagen hast.
 

Neue Beiträge

Zurück