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

Apa itu Kolom Terhitung di SQL Server?

Di SQL Server, kolom terhitung adalah kolom virtual yang menggunakan ekspresi untuk menghitung nilainya.

Kolom yang dihitung biasanya akan menggunakan data dari kolom lain dalam perhitungannya. Jika data di salah satu kolom tersebut diperbarui, kolom yang dihitung akan secara otomatis mencerminkan pembaruan dalam penghitungannya.

Contoh Kolom Terhitung

+------------+-------------+------------+----------------+
| PersonID   | FirstName   | LastName   | FullName       |
|------------+-------------+------------+----------------|
| 1          | Homer       | Seinfeld   | Homer Seinfeld |
| 2          | Bart        | Costanza   | Bart Costanza  |
| 3          | Marge       | Kramer     | Marge Kramer   |
+------------+-------------+------------+----------------+

Dalam contoh ini, FullName kolom adalah kolom yang dihitung. Ini menggabungkan nilai dari FirstName dan LastName kolom untuk menghitung nama lengkap.

Tanpa kolom yang dihitung, jika Anda ingin memilih nama lengkap, Anda perlu melakukan sesuatu seperti ini:

SELECT FirstName + ' ' + LastName AS FullName
FROM Person;

Atau Anda bisa menggunakan CONCAT() fungsinya, seperti ini:

SELECT CONCAT(FirstName, ' ', LastName) AS FullName
FROM Person;

Setiap kali Anda ingin memilih nama lengkap dari tabel, Anda harus menyertakan rangkaian dalam kueri Anda.

Tetapi dengan menggunakan kolom yang dihitung seperti di atas, Anda dapat melakukan ini:

SELECT FullName
FROM Person;

Manfaat Kolom Komputasi

Kolom yang dihitung dapat menghemat waktu saat menulis kueri, mengurangi kesalahan, dan bahkan meningkatkan kinerja.

Kolom yang dihitung dapat berguna jika Anda mendapati diri Anda berulang kali menjalankan kueri yang sama berulang kali, terutama jika kueri tersebut didasarkan pada aturan bisnis yang jarang berubah.

Kolom yang dihitung pada contoh sebelumnya dapat menghemat banyak waktu di masa mendatang, karena kita tidak perlu menggabungkan nama depan dan nama belakang setiap kali kita ingin memilih nama lengkap seseorang.

Contoh Kasus Penggunaan

Contoh di mana kolom yang dihitung dapat berguna meliputi:

  • Menghitung usia seseorang, berdasarkan tanggal lahirnya di kolom lain
  • Menggabungkan nama depan dan nama belakang, berdasarkan nama depan dalam satu kolom, dan nama belakang di kolom lain
  • Menghitung nilai inventaris produk, berdasarkan jumlah stok produk di satu kolom, dan harga di kolom lain
  • Menghitung BMI (Indeks Massa Tubuh) seseorang, berdasarkan tinggi dan berat badannya di kolom lain
  • Membuat kolom “Peringkat” yang memberi peringkat pada baris, berdasarkan nilai di kolom lain
  • Menghitung waktu balapan pelari maraton, berdasarkan waktu mulai dan waktu berakhir mereka di kolom lain

Persistensi Kolom yang Dihitung

Kolom yang dihitung tidak disimpan secara fisik dalam tabel kecuali jika ditandai PERSISTED .

Jika tidak kolom dihitung yang bertahan, perhitungan akan terjadi setiap kali tabel diakses.

Jika adalah kolom dihitung bertahan, nilai dihitung secara fisik disimpan dalam tabel. Artinya, tidak perlu menghitung nilainya setiap kali Anda menjalankan kueri. Jika data diperbarui di salah satu kolom yang mendapatkan nilainya, nilai kolom yang dihitung diperbarui dan disimpan dalam tabel. Ini dapat membantu kinerja.

Ketahuilah bahwa kolom yang dihitung hanya dapat dipertahankan jika bersifat deterministik. Jika non-deterministik, Anda akan mendapatkan kesalahan jika Anda mencoba untuk mempertahankannya.

Sebuah non-deterministik kolom adalah salah satu yang mengembalikan nilai yang berbeda bahkan dengan input yang sama. Misalnya, jika Anda menggunakan tanggal saat ini dalam perhitungan Anda, nilainya akan berbeda setiap hari, dan itu akan dianggap non-deterministik.

Jika Anda hanya menggabungkan nama depan dan nama belakang, maka itu akan menjadi deterministik, dan Anda dapat mempertahankan kolom seperti itu.

Membuat Kolom Terhitung

Anda dapat membuat kolom yang dihitung dari GUI SSMS atau dengan Transact-SQL.

Dalam SSMS

Di SSMS, saat berada di Perancang Tabel , buat kolom yang Anda inginkan menjadi kolom yang dihitung (atau cukup pilih jika sudah ada), lalu di bawah Properti Kolom tab, masukkan rumus Anda ke dalam Spesifikasi Kolom Terhitung bidang properti.

Jangan khawatir tentang memberikan kolom yang dihitung tipe data – SQL Server akan memberikan tipe data berdasarkan rumus Anda.

Anda juga dapat memilih Ya untuk Bertahan jika Anda ingin.

Menggunakan T-SQL

Lihat Membuat Kolom Terhitung di SQL Server menggunakan T-SQL untuk contoh membuat kolom terhitung menggunakan Transact-SQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mempertahankan ORDER BY di SELECT INTO

  2. Apa itu Logis DAN Operator di SQL Server - Tutorial SQL Server / TSQL Bagian 120

  3. Dapatkan Beberapa Nilai di Kursor SQL Server

  4. Bagaimana KECUALI Bekerja di SQL Server

  5. Permintaan PIVOT dinamis SQL Server?