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

Cara Mengonversi Daftar yang Dipisahkan Koma menjadi Baris di SQL Server

Jadi Anda memiliki daftar yang dipisahkan koma, dan sekarang Anda perlu memasukkannya ke dalam database. Tapi masalahnya, Anda harus memasukkan setiap nilai dalam daftar ke dalam baris tabelnya sendiri. Jadi pada dasarnya, Anda perlu membagi daftar menjadi nilai-nilai yang terpisah, lalu memasukkan masing-masing nilai tersebut ke dalam baris baru.

T-SQL sekarang memiliki STRING_SPLIT() fungsi yang membuat jenis operasi ini mudah. Fungsi ini pertama kali tersedia di SQL Server 2016, dan tersedia di database dengan tingkat kompatibilitas 130 atau lebih tinggi (cara memeriksa tingkat kompatibilitas database Anda dan cara mengubahnya).

Contoh

Katakanlah kita memiliki daftar yang dibatasi koma berikut:

Cat,Dog,Rabbit

Kita dapat menggunakan STRING_SPLIT() berfungsi untuk memisahkan setiap nilai ke dalam barisnya sendiri. Seperti ini:

SELECT value 
FROM STRING_SPLIT('Cat,Dog,Rabbit', ',');

Hasil:

value 
------
Cat   
Dog   
Rabbit

Jadi kita sudah setengah jalan. Sebenarnya, tergantung pada kebutuhan Anda, mungkin hanya ini yang Anda butuhkan.

Menyisipkan Nilai ke dalam Tabel

Kita dapat mengambil kode di atas dan menggunakannya dengan INSERT() penyataan. Dengan kata lain, kita dapat menyisipkan nilai-nilai tersebut ke dalam tabel, dan setiap item daftar akan berada di barisnya sendiri. Untuk melakukan ini, kita cukup mengawali kode sebelumnya dengan INSERT() pernyataan.

Contoh:

INSERT INTO Animals (AnimalName)
SELECT value FROM STRING_SPLIT('Cat,Dog,Rabbit', ',');

Ini memasukkan setiap nilai ke dalam barisnya sendiri di AnimalName kolom Animals tabel.

Periksa Hasil

Untuk memeriksa hasilnya, jalankan SELECT pernyataan terhadap tabel:

SELECT * 
FROM Animals;

Hasil:

AnimalId  AnimalName
--------  ----------
1         Cat       
2         Dog       
3         Rabbit    

Hasil ini mengasumsikan bahwa AnimalId kolom adalah IDENTITY kolom (peningkatan nilai dimasukkan secara otomatis dengan setiap baris baru).

Skrip Lengkap

Berikut skrip yang memungkinkan Anda melakukan contoh di atas sekaligus. Itu membuat database, membuat tabel, memasukkan data, lalu memeriksa hasilnya.

Buat databasenya:

/* Create database */
USE master;
CREATE DATABASE Nature;

Lakukan sisanya:

/* Create table */
USE Nature;
CREATE TABLE Animals (
  AnimalId int IDENTITY(1,1) NOT NULL PRIMARY KEY,
  AnimalName nvarchar(255) NOT NULL
);

/* Insert data from the list */
INSERT INTO Animals (AnimalName)
SELECT value FROM STRING_SPLIT('Cat,Dog,Rabbit', ',');

/* Check the result */
SELECT * FROM Animals;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks SQL Server:Persyaratan utama, dampak kinerja, dan pertimbangan

  2. Cara Menemukan Lokasi File Data dan File Log di SQL Server

  3. Metode Pilihan untuk Menyimpan Kata Sandi Dalam Basis Data

  4. Cara terbaik untuk menerapkan jejak audit di SQL Server?

  5. SQL Server dan Kerentanan Spectre/Meltdown