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

LEFT() vs SUBSTRING() di SQL Server:Apa Bedanya?

Di lingkungan SQL Server, dua dari banyak fungsi string yang kami miliki adalah LEFT() dan SUBSTRING() .

Fungsi-fungsi ini melakukan hal yang serupa, tetapi ada perbedaan. Artikel ini membahas beberapa perbedaan utama antara fungsi-fungsi ini.

Definisi

Pertama, mari kita lihat fungsi masing-masing fungsi:

LEFT()
Mengembalikan bagian kiri string karakter dengan jumlah karakter yang ditentukan.
SUBSTRING()
Mengembalikan bagian dari karakter, biner, teks, atau ekspresi gambar.

Jadi LEFT() mengembalikan hanya bagian kiri string.

SUBSTRING() hanya mengembalikan sebagian ekspresi (tidak terbatas hanya pada bagian kiri – bisa di kiri, kanan, atau di suatu tempat di tengah).

Contoh 1 – Hasil Sama

Kedua fungsi tersebut dapat digunakan untuk mengembalikan sejumlah karakter tertentu dari kiri.

SELECT 
  LEFT('Buckethead', 6) AS [LEFT],
  SUBSTRING('Buckethead', 1, 6) AS [SUBSTRING];

Hasil:

+--------+-------------+
| LEFT   | SUBSTRING   |
|--------+-------------|
| Bucket | Bucket      |
+--------+-------------+

Namun, LEFT() lebih ringkas. Ini sebagian karena fakta bahwa ada lebih sedikit karakter dalam nama fungsi.

Tapi itu juga karena sintaksnya. LEFT() fungsi hanya membutuhkan dua argumen (ekspresi, dan jumlah karakter yang akan dikembalikan), sedangkan SUBSTRING() membutuhkan tiga argumen (ekspresi, posisi awal, dan jumlah karakter untuk kembali dari posisi awal tersebut).

Contoh 2 – Saat SUBSTRING Lebih Baik

SUBSTRING() jauh lebih baik daripada LEFT() saat mengambil data dari tengah string. Sebenarnya, kiri tidak dirancang untuk itu. Jika Anda benar-benar ingin menggunakan LEFT() untuk melakukan ini, Anda perlu melakukan beberapa tipu daya, seperti menggunakan RIGHT() berfungsi sebagai argumen pertamanya.

Contoh:

SELECT 
  LEFT(RIGHT('Buckethead', 7), 3) AS [LEFT/RIGHT],
  SUBSTRING('Buckethead', 4, 3) AS [SUBSTRING];

Hasil:

+--------------+-------------+
| LEFT/RIGHT   | SUBSTRING   |
|--------------+-------------|
| ket          | ket         |
+--------------+-------------+

Jenis Data yang Diterima

LEFT() fungsi tidak menerima teks dan nteks tipe data sebagai argumen pertama. Ini mendukung semua tipe data lain yang dapat dikonversi ke varchar atau nvarchar .

SUBSTRING() fungsi di sisi lain, menerima karakter , biner , teks , nteks , dan gambar ekspresi.

Mengembalikan Nilai

LEFT() mengembalikan varchar ketika argumen pertama adalah tipe data karakter non-Unicode, dan nvarchar ketika itu adalah tipe data karakter Unicode.

Nilai yang dikembalikan untuk SUBSTRING() adalah sebagai berikut:

Ekspresi (argumen pertama) Jenis pengembalian
char /varchar /teks varchar
nchar /nvarchar /nteks nvarchar
biner /varbinary /gambar varbiner

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghapus 1000 baris teratas dari tabel menggunakan Sql Server 2008?

  2. Buat Database SQL Server dengan Azure Data Studio

  3. SQL Server:Cara memilih semua hari dalam rentang tanggal meskipun tidak ada data selama beberapa hari

  4. Kapan saya harus menggunakan CROSS APPLY daripada INNER JOIN?

  5. Apa itu STATISTIK IO di SQL Server?