Jaki jest najlepszy sposób na usunięcie wszystkich spacji z ciągu znaków w SQL Server 2008?
LTRIM(RTRIM(' a b '))
usuną wszystkie spacje po prawej i lewej stronie ciągu, ale muszę też usunąć spację na środku.
sql
sql-server
string
whitespace
trim
Ananth
źródło
źródło
Odpowiedzi:
Wystarczy go wymienić;
Edycja: tylko dla wyjaśnienia; jest globalnym zamiennikiem, nie ma potrzeby
trim()
martwić się o wiele spacji dla jednegochar
lubvarchar
:Wynik
źródło
Chciałbym użyć WYMIANY
ZASTĄPIĆ
źródło
Jeśli jest to aktualizacja w tabeli, wystarczy uruchomić tę aktualizację wiele razy, aż wpłynie na 0 wierszy.
źródło
REPLACE()
funkcja :źródło
Referencje zaczerpnięte z tego bloga:
Najpierw utwórz przykładową tabelę i dane:
Skrypt do wyboru łańcucha bez dodatkowych spacji:
Wynik:
źródło
100% pracy
Możesz użyć
"column_name"
lubcolumn_name
Dzięki
Subroto
źródło
select replace(replace(replace(varcharColumn,char(13),''),char(10),''),' ','')
aby usunąć wszystkie nowe wiersze i spacje zvarchar
kolumny. Jeśli użyłem „\ n” i „\ r” zamiast char (13) i char (10), to nie zadziałało.t-sql replace http://msdn.microsoft.com/en-us/library/ms186862.aspx
zamień (val, „”, „”)
źródło
Jeśli w ciągu znajduje się wiele białych znaków, zastąpienie może nie działać poprawnie. W tym celu należy użyć następującej funkcji.
Przykład:
Wynik:
źródło
To polega na usunięciu spacji na ciągach:
źródło
Na wszelki wypadek TRIM spacji we wszystkich kolumnach możesz użyć tego skryptu, aby zrobić to dynamicznie:
źródło
jeśli chcesz usunąć spacje, - i inny tekst z ciągu, użyj następujących poleceń:
załóżmy, że masz w tabeli numer telefonu komórkowego, np. „718-378-4957” lub „7183784957”, i chcesz go zastąpić i uzyskać numer telefonu komórkowego, a następnie użyć następującego tekstu.
Wynik: - 7183784957
źródło
Tylko wskazówka, na wypadek problemów z funkcją zamiany, możesz ustawić typ danych na nchar (w takim przypadku jest to stała długość i nie będzie działać).
źródło
Aby wszystkie powyższe odpowiedzi były kompletne, na StackOverflow znajdują się dodatkowe posty dotyczące postępowania ze WSZYSTKIMI znakami spacji ( pełna lista tych znaków znajduje się na stronie https://en.wikipedia.org/wiki/Whitespace_character ):
źródło
replace (replace (nazwa_kolumny, CHAR (13), ''), CHAR (10), '')
źródło
jest to dla mnie przydatne:
.
źródło
Miałem ten problem dzisiaj i zamieniłem / przycinałem załatwiłem sprawę ... patrz poniżej.
przed i po :
źródło
LTRIM
&RTRIM
?Aby usunąć spacje w ciągu po lewej i prawej stronie. Aby usunąć miejsce w środkowym użyciu
Replace
.Możesz użyć,
RTRIM()
aby usunąć spacje z prawej strony iLTRIM()
aby usunąć spacje z lewej, stąd lewe i prawe spacje zostały usunięte w następujący sposób:źródło
Składnia do zamiany określonych znaków:
Na przykład w ciągu „HelloReplaceThingsGoing” Zastąp słowo jest zastąpione przez How
źródło
Wersja funkcjonalna (udf), która usuwa spacje, cr, lf, tabulatory lub konfigurowalne.
Wynik: „234asdfwefwef3x”
źródło
Z jakiegoś powodu zamiana działa tylko z jednym ciągiem znaków za każdym razem. Miałem taki ciąg „ Test MSP ” i chcę zostawić tylko jedno miejsce.
Użyłem podejścia, które zrobił @Farhan, ale z pewnymi modyfikacjami:
Następnie uruchamiam moją aktualizację w ten sposób
Potem otrzymałem ten wynik: Test MSP
Publikowanie tutaj, jeśli ktoś będzie tego potrzebował tak jak ja.
Działający na: Microsoft SQL Server 2016 (SP2)
źródło
Sprawdź i wypróbuj poniższy skrypt (Testowany w jednostce) -
źródło
Wygląda na to, że wszyscy odnoszą się do jednej funkcji WYMIANY. Lub nawet wiele wywołań funkcji REPLACE. Ale jeśli masz dynamiczne wyjście z nieznaną liczbą spacji, to nie zadziała. Każdy, kto regularnie zajmuje się tym problemem, wie, że REPLACE usunie tylko jedno miejsce, NIE WSZYSTKO, jak powinno. Wydaje się, że LTRIM i RTRIM mają ten sam problem. Pozostaw to Microsoft. Oto przykładowe dane wyjściowe, które wykorzystują pętlę WHILE do usuwania wartości ALL CHAR (32) (spacja).
Oto wynik powyższego kodu:
Teraz, aby pójść o krok dalej i wykorzystać go w instrukcji UPDATE lub SELECT, zmień go na udf.
Następnie użyj funkcji w instrukcji SELECT lub INSERT:
źródło