Di SQL Server (dan Azure), T-SQL DATALENGTH()
fungsi mengembalikan jumlah byte yang digunakan untuk mewakili ekspresi apa pun.
Misalnya:
SELECT DATALENGTH('Lit');
Hasil:
3
Dalam hal ini, ada 3 byte dalam string Lit
.
Namun, ini adalah contoh sederhana. Hasilnya bisa terlihat sangat berbeda, bergantung pada tipe datanya.
Pada contoh di atas, kita melihat bahwa ada 3 byte dalam kata Lit
. Ini juga terjadi persis berapa banyak karakter dalam string. Tetapi jika kita mengembalikan kata yang sama dari kolom dalam database, kita mungkin mendapatkan hasil yang berbeda. Misalnya, ini:
SELECT ArtistName, DATALENGTH(ArtistName) AS DataLength FROM Artists WHERE ArtistName = 'Lit';
Hasil:
ArtistName DataLength ---------- ---------- Lit 6
Dalam hal ini panjang datanya adalah 6.
Alasannya adalah karena, dalam database khusus ini, kolom memiliki nvarchar(255) tipe data. nvarchar tipe data adalah string unicode, yang menyimpan 2 byte per karakter (yang secara efektif menggandakan panjang data). Jika kolom telah menggunakan varchar(255) itu akan memiliki panjang data 3. Namun, jika itu mengatakan, char(25) string akan memiliki panjang data 25.
Juga, jika sebelumnya adalah char(25) tetapi kemudian diubah menjadi varchar(255) masih memiliki panjang data 255.
Namun, dalam semua kasus, LEN()
fungsi akan kembali 3.
Trailing Blank
DATALENGTH()
fungsi menghitung trailing blank (misalnya spasi di akhir string, tab, carriage return, dll).
Contoh:
SELECT DATALENGTH('Lit ');
Hasil:
4
Dalam contoh ini saya hanya menambahkan spasi di akhir string. Ini adalah salah satu perbedaan antara LEN()
dan DATALENGTH()
.
Anda dapat melihat contoh LEN()
dan DATALENGTH()
berdampingan di LEN()
vs DATALENGTH()
.
Jenis Pengembalian
DATALENGTH()
fungsi mengembalikan tipe data int , kecuali ekspresinya adalah varchar(max) , nvarchar(maks) atau varbinary(maks) , dalam hal ini ia mengembalikan besar .