T-SQL-Auswahlabfrage zum Entfernen nicht numerischer Zeichen

Ich habe schmutzige Daten in einer Spalte mit variabler Alphalänge. Ich möchte nur alles streifen, was nicht 0-9 ist.

Ich möchte keine Funktion oder einen Prozess ausführen. Ich habe ein ähnliches Skript, das nur den numerischen Wert nach dem Text erfasst. Es sieht folgendermaßen aus:

Update TableName
set ColumntoUpdate=cast(replace(Columnofdirtydata,'Alpha #','') as int)
where Columnofdirtydata like 'Alpha #%'
And ColumntoUpdate is Null

Ich dachte, es würde ziemlich gut funktionieren, bis ich herausfand, dass einige der Datenfelder, von denen ich dachte, dass sie nur das Format Alpha haben, nicht ...

Beispiele für Daten, die entfernt werden müssen

AB ABCDE # 123
ABCDE# 123
AB: ABC# 123

Ich möchte nur die 123. Es ist wahr, dass alle Datenfelder das # vor der Nummer haben.

Ich habe Substring und PatIndex ausprobiert, aber ich verstehe die Syntax nicht ganz oder so. Hat jemand einen Rat, wie dies am besten angegangen werden kann?

Vielen Dank!

Antworten auf die Frage(14)

Ihre Antwort auf die Frage