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

sql untuk memisahkan string nama orang dan menampilkan inisial

Ini akan berfungsi untuk kombinasi "Nama Depan Nama Belakang" dan "Nama Depan Nama Tengah Nama Belakang".

DECLARE @name AS NVARCHAR(50) 
SET @name = 'Firstname Middle Lastname' 


SELECT SUBSTRING(@name, 1, 1) +     --First initial
    SUBSTRING(@name, CHARINDEX(' ', @name) + 1, 1) +    --Middle/Last initial
    CASE WHEN 0 <>  CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) -- More than two words 
        THEN SUBSTRING(@name, CHARINDEX(' ', @name, CHARINDEX(' ', @name) + 1) + 1, 1)  --Last initial
    ELSE '' --Have to add empty string to avoid NULLing entire result
    END

Tentu saja, jika pengguna memiliki spasi di salah satu nama mereka untuk beberapa alasan Anda akan mengalami masalah saat menguraikan ini, tetapi saya menduga itu akan terjadi ketika tidak menyimpan nama Anda di bidang terpisah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan Elemen ke-n dari yang terakhir dalam xml di Sql Server

  2. Pemodelan data untuk tabel yang sama dengan kolom yang sama

  3. Menjalankan Script, dibuat dengan menghasilkan skrip di server yang berbeda memberikan kesalahan

  4. Tidak Dapat Terhubung ke Server - Kesalahan terkait jaringan atau spesifik contoh

  5. Tabel Pivot dan Kolom Gabungan