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

SQL Server 2005 :podzielić ciąg na tablicę i uzyskać tablicę(x)?

Zakładam, że zawsze są dokładnie 4 części.

Jeśli tak, możesz zastąpić / z . i użyj ładnego wbudowanego ParseName funkcjonować. Jedynym problemem z twojego przykładu jest to, że liczy się od końca, więc musisz uważać na to, którą część chcesz:

DECLARE @test VARCHAR(max);
SET @test = 'Peter/Parker/Spiderman/Marvel';
SET @test = Replace(@test, '/', '.');

SELECT Parsename(@test, 4),--returns Peter
       Parsename(@test, 3),--returns Parker
       Parsename(@test, 2),--returns Spiderman
       Parsename(@test, 1) --returns Marvel

Jeśli istnieje zmienna liczba części, musisz znaleźć funkcję dzielenia ciągów, która zrobi to za ciebie, nie ma dobrej wbudowanej. Wiele opcji można znaleźć, przeszukując SO:https://stackoverflow.com/search?q=[sql+server]+string+split

Słowo ostrzeżenia - jeśli spróbujesz użyć numeru z PARSENAME inny niż 1-4, wynik będzie zawsze NULL.



  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 wiersza na kolumnę w sql 2008

  2. Podzapytanie programu SQL Server zwróciło więcej niż 1 wartość. Nie jest to dozwolone, gdy podzapytanie następuje po =, !=, <, <=,>,>=

  3. Zaloguj się do Microsoft SQL Server Błąd:18456

  4. SQL Server 2008 XPath

  5. Jak usunąć wszystkie domyślne ograniczenia w bazie danych SQL Server — samouczek SQL Server / TSQL, część 94?