Dank für Ihre Antworten
Wörter getrennt durch Leerzeichen, Kommas und/oder Semikolons, alle Separatoren sollten
an ihrem Platz bleiben z Rekord
'word1, word2 ;;; word3,'
evalueates zu
'word3, word2 ;;; word1'
aufgrund Anforderungen des bestehenden Systems es getan werden muss, mit einzelner Abfrage,
ich habe versucht:
update t_desc set name =
(select name
from
(select name,
case when wb is null then rname when wb >= we then stuff(rname, wb, 128, REVERSE (substring(rname, wb, 128))) else
stuff(rname, wb, we-wb+1, REVERSE(substring(rname, wb, we-wb+1))) end rname,
case when wb is null or wb > we then null else PATINDEX('%[a-z0-9]%', SUBSTRING(rname, we+1, 128))+we end wb,
case when we is null or wb > we then null else PATINDEX('%[a-z0-9][^a-z0-9]%', SUBSTRING(rname, we+1, 128))+we end we
from
(select name,
case when wb is null then rname when wb >= we then stuff(rname, wb, 128, REVERSE (substring(rname, wb, 128))) else
stuff(rname, wb, we-wb+1, REVERSE(substring(rname, wb, we-wb+1))) end rname,
case when wb is null or wb > we then null else PATINDEX('%[a-z0-9]%', SUBSTRING (rname, we+1, 128))+we end wb,
case when we is null or wb > we then null else PATINDEX('%[a-z0-9][^a-z0-9]%', SUBSTRING(rname, we+1, 128))+we end we
from
(select name,
case when wb is null then rname when wb >= we then stuff(rname, wb, 128, REVERSE (substring(rname, wb, 128))) else
stuff(rname, wb, we-wb+1, REVERSE(substring(rname, wb, we-wb+1))) end rname,
case when wb is null or wb > we then null else PATINDEX('%[a-z0-9]%', SUBSTRING (rname, we+1, 128))+we end wb,
case when we is null or wb > we then null else PATINDEX('%[a-z0-9][^a-z0-9]%', SUBSTRING(rname, we+1, 128))+we end we
from
(select name,
stuff(rname, wb, we-wb+1, REVERSE(substring(rname, wb, we-wb+1))) rname,
PATINDEX('%[a-z0-9]%', SUBSTRING(rname, we+1, 128))+we wb,
PATINDEX('%[a-z0-9][^a-z0-9]%', SUBSTRING(rname, we+1, 128))+we we
from
(select name, rname,
PATINDEX('%[a-z0-9]%', rname) wb,
PATINDEX('%[a-z0-9][^a-z0-9]%', rname) we
from
(select t_desc.name, REVERSE(name) rname) t1) t2) t3) t4) t5) t6)
und ähnliche Ideen, aber es wurde nicht richtig
bearbeiten arbeiten: alles außer Buchstaben und Ziffern sind Separatoren
edit2: unfortunetely kann ich nicht DDL-Anweisungen aufrufen, und ich habe keinen direkten Zugriff auf die Datenbank, Meine Firma verwendet alte, geschlossene Software - wir können nur die Konsole der äußeren Anwendung verwenden, um auszuwählen oder manchmal zu aktualisieren. Ich kann mein Update zur Jobliste hinzufügen - es wird jeden Tag in Zukunft ausgeführt.
Tabelle hat ca. 60k Zeilen, Spalte enthält zwischen 2 und etwa 20 Worten, nicht null
sorry für mein Englisch :)
Sie die Kommas und Semikolons eine Rolle? – Quassnoi
Diese Frage könnte eine Klarstellung erfordern. – Jeremiah
Was trennt die Wörter? Raum? Komma? Semikolon? – fredrik