SQL Abfrage Groß Kleinschreibung filtern

Smith1

Benutzer
Beiträge
6
Hallo zusammen,

Tabelle: ARTIKEL
Spalte: VKME
Suchbegriff: Stück

Ich möchte u.a. in der Tabelle Artikel und in der Spalte VKME nach dem Wort "Stück" suchen. Aktuell habe ich in der Spalte VKME folgende Varianten "Stück" und "STÜCK". Ich muss aber die Variante "Stück" gegen "STÜCK" ersetzen.

Ich habe es bereits so versucht:

WHERE VKME = 'Stück' (Hier gibt er mir alle aus, das gleiche mit like)
StrComp kennt SQL anscheinend nicht

Ich hoffe Ihr hab eine Lösung?!

Grüße

Smith1
 
Werbung:
mach einfach einen funktionale Index auf lower(VKME) und suche mit where vkme = lower(...).

Was genau meinst der Dichter in dieser Zeile?

Code:
WHERE VKME = 'Stück' (Hier gibt er mir alle aus, das gleiche mit like)
 
Okay. Ich versteh leider nicht, was der Dichter mit

Code:
Aktuell habe ich in der Spalte VKME folgende Varianten "Stück" und "STÜCK". Ich muss aber die Variante "Stück" gegen "STÜCK" ersetzen.

nun konkret meint. Daß bei lower(...) beide Varianten kommen ist mir klar, und das war so auch bewußt so gemacht. Aber vielleicht bin ich auch nur zu müde ...
 
Es geht darum, in der Spalte VKME nach "Stück" zu filtern. Ich brauche nur die Einträge die genau so geschrieben sind. also Das S großgeschrieben und die folgenden Buchstaben ück kleingeschrieben. Diese Einträge möchte ich dann ändern können in "STÜCK" alles großgeschrieben.
 
easy:

Code:
test=*# select * from smith1 ;
    t     
----------
 stück
 Stück
 stueck
 Stueck
 Eimer
 Flaschen
 Beutel
 Kisten
 Netze
(9 rows)

test=*# update smith1 set t = 'STÜCK' where t = 'Stück';
UPDATE 1
test=*# select * from smith1 ;
    t     
----------
 stück
 stueck
 Stueck
 Eimer
 Flaschen
 Beutel
 Kisten
 Netze
 STÜCK
(9 rows)

test=*#
 
Ich benutze Microsoft SQL Server 2012 Managment studio.

Ich habe das so eingeben:

test=*# select * from ARTIKEL ;
t
----------
stück
Stück
stueck
Stueck
Eimer
Flaschen
Beutel
Kisten
Netze
(9 rows)


Wäre schön wenn du mir das aufzeigen könntest wie es richtig ist? Ich stecke nicht so tief in der Materie. :)

Tabelle: ARTIKEL
Spalte: VKME

???
 
Hä? Was hast Du eingegeben? Das "test=*#" ist der prompt meiner DB, das ab "
t
----------" dann die Ausgabe. Hast das so eingetippt? Nice ;-)
 
Ja habe ich...:( Ich bin erst seit einem Jahr im SQL unterwegs.. Und das auch nur weil ich die Systemumstellung betreut habe und alle Daten aus dem alten ERP System rausgeholt habe und dem neuen ERP System zur Verfügung gestellt habe.
Es wäre wirklich cool wenn du mir genau aufzeigen könntest, was ich einzugeben habe. :)
 
Okay:

  • select * from ARTIKEL ;
  • update smith1 set t = 'STÜCK' where t = 'Stück';
  • select * from smith1 ;


Und erst:

  • create table smith1 ( t text);

und dann:

Code:
copy smith1 from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself, or an EOF signal.
>> stück
>> Stück
>> stueck
>> Stueck
>> Eimer
>> Flaschen
>> Beutel
>> Kisten
>> Netze
>> \.

ohne die zweite und dritte Zeile und ohne dem ">> " je Zeile ;-)


Hope that helps ;-)
 
Werbung:
In MSSQL kannst du Zeichenketten auch case sensitive verarbeiten. Das kann man für ganze Spalten/Tabellen/Datenbanken festlegen oder man bestimmt es in der Abfrage:
Code:
WHERE spalte COLLATE Latin1_General_CS_AS LIKE '%GMBH%' COLLATE Latin1_General_CS_AS
In diesem Fall wird die Collation sowohl auf die Spalte als auch auf den Such-String angewandt, das _CS steht für case sensitive.
 
Zurück
Oben