Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana Saya Membagi String yang Dibatasi di SQL Server Tanpa Membuat Fungsi?

Sebuah versi yang menggunakan XML.

declare @S varchar(100) = 'Hello John Smith'

select 
  n.r.value('.', 'varchar(50)')
from (select cast('<r>'+replace(@S, ' ', '</r><r>')+'</r>' as xml)) as s(XMLCol)
  cross apply s.XMLCol.nodes('r') as n(r)

Menggunakan tabel sebagai gantinyaGanti @T dengan tabel apa pun yang Anda gunakan.

-- Test table
declare @T table (ID int, Col varchar(100))
insert into @T values (1, 'Hello John Smith')
insert into @T values (2, 'xxx yyy zzz')

select 
  T.ID,
  n.r.value('.', 'varchar(50)')
from @T as T
  cross apply (select cast('<r>'+replace(replace(Col,'&','&amp;'), ' ', '</r><r>')+'</r>' as xml)) as S(XMLCol)
  cross apply S.XMLCol.nodes('r') as n(r)

Memisahkan string 'Hello John Smith' tanpa menggunakan variabel

select 
  n.r.value('.', 'varchar(50)')
from (select cast('<r>'+replace('Hello John Smith', ' ', '</r><r>')+'</r>' as xml)) as s(XMLCol)
  cross apply s.XMLCol.nodes('r') as n(r)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara menggunakan gabungan silang dan memberi koma di antara dua tabel?

  2. Forum Kinerja SQL Server Terbaik untuk Bantuan pada Pertanyaan Terberat

  3. Saran untuk menerapkan tabel audit di SQL Server?

  4. Saya perlu memberikan nama kolom menggunakan variabel dalam pernyataan pilih di Prosedur Toko tetapi saya tidak dapat menggunakan kueri dinamis

  5. INSTR() Setara di SQL Server