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

SQL Server 2005 przy użyciu CHARINDEX() do dzielenia ciągu

Nie powiedziałbym, że jest to łatwe lub oczywiste, ale za pomocą tylko dwóch myślników można odwrócić ciąg i nie jest to zbyt trudne:

with t as (select 'LD-23DSP-1430' as val)
select t.*,
       LEFT(val, charindex('-', val) - 1),
   SUBSTRING(val, charindex('-', val)+1, len(val) - CHARINDEX('-', reverse(val)) - charindex('-', val)),
       REVERSE(LEFT(reverse(val), charindex('-', reverse(val)) - 1))
from t;

Poza tym możesz chcieć użyć split() zamiast tego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwersja wyników kolumny do jednego wiersza

  2. Statystyka bazy danych aktualizacji programu SQL Server

  3. problem z kluczem obcym i indeksem

  4. Wyszukiwanie pełnotekstowe w SQL Server PDF nie działa w pliku FileStream PDF

  5. Parametr nie działa tak dobrze, jak twarde kodowanie wartości