Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Podciąg po spacji

Oto wersja używająca SUBSTRING i CHARINDEX dla wersji SQL SERVER przed SQL Server 2016, gdy STRING_SPLIT został wprowadzony.

Jedna z następujących prac:

SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)

SELECT  SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )

Musimy znaleźć pozycję spacji za pomocą CHARINDEX (który zwraca liczbę oznaczającą, gdzie zaczyna się ciąg (spacja). Jednak ciąg, który chcemy wybrać, zaczyna się po spacji, dlatego musimy dodać 1 (+1) do pozycja początkowa naszego SUBSTRING, tak aby pozycja początkowa stała się CHARINDEX(' ', @string) + 1.

Trzecim argumentem dla PODŁAŃCUCH jest długość ciągu do wybrania, w pierwszym przypadku po prostu zakładam, że ciąg określony jako varchar(20) nie może być dłuższy niż 20 znaków, dlatego używam 20. Uwaga PODŁAŃCUCH nie będzie próbował wybierz znaki znajdujące się poza końcem ciągu, więc bezpiecznie jest określić długość dłuższą niż liczba pozostałych znaków.

Mój drugi przykład pobiera długość ciągu do wybrania na podstawie długości całego ciągu (DATALENGTH) minus liczba znaków przed naszym wyborem (CHARINDEX + 1)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008:WYBIERZ DO AKTUALIZACJI

  2. Jak sprawdzić minimalną datę w każdej obserwacji i dynamicznie aktualizować flagę?

  3. Nie można połączyć się z bazą danych SQL Server w programie Visual Studio, ponieważ nie ma tam mojej bazy danych

  4. Kreator importu SQL Server kończy się niepowodzeniem z niezrozumiałym komunikatem

  5. Typowe wpadki serwera SQL