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

Podziel ciąg sql na słowa

Spróbuj tego:

declare @s1 varchar(3000) ;
declare @xml xml,@str varchar(100),@delimiter varchar(10), @out varchar(max);;
select @delimiter =' '
select @s1 =  'This is a string';
select @s1 = 'This    is   a   string ';
select @s1 = 'This  is a          string ';
select @s1 = 'This  is           a string';

select @xml = cast(('<X>'+replace(@s1,@delimiter ,'</X><X>')+'</X>') as xml)

select top 3 @out = 
    COALESCE(@out + ' ', '') +  C.value('.', 'varchar(100)') 
from @xml.nodes('X') as X(C)
where LEN(C.value('.', 'varchar(10)')) > 0

select @out


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć wszystkie procedury składowane, które wstawiają, aktualizują lub usuwają rekordy?

  2. Instalacja i konfiguracja dzienników serwera SQL i przywracanie po awarii -1

  3. Co się stanie w SQL 2005, gdy zabraknie numeru kolumny autonumerowania?

  4. Jak mogę pominąć nawiasy kwadratowe w klauzuli LIKE?

  5. Potrzebna pomoc RowNumber() i Partition By wydajności