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

Buat Kolom Terhitung di SQL Server menggunakan T-SQL

Artikel ini menunjukkan cara menggunakan T-SQL untuk membuat kolom terhitung di SQL Server.

kolom terhitung adalah kolom virtual yang menggunakan ekspresi untuk menghitung nilainya. Ekspresi biasanya akan menggunakan data dari kolom lain. Kolom yang dihitung tidak disimpan secara fisik dalam tabel kecuali jika ditandai PERSISTED .

Contoh 1 – Membuat Tabel dengan Kolom Terhitung

Berikut adalah contoh membuat tabel dengan kolom yang dihitung, memasukkan data, lalu memilih isi tabel.

CREATE TABLE Products
  (
    ProductID int IDENTITY (1,1) NOT NULL,
    ProductName varchar(255), 
    Quantity smallint,
    Price money,
    TotalValue AS Quantity * Price
  );

INSERT INTO Products (ProductName, Quantity, Price)
VALUES 
  ('Hammer', 5, 10),
  ('Corkscrew', 2, 7.50),
  ('Kettle', 3, 25.15);

SELECT *
FROM Products;

Hasil:

+-------------+---------------+------------+---------+--------------+
| ProductID   | ProductName   | Quantity   | Price   | TotalValue   |
|-------------+---------------+------------+---------+--------------|
| 1           | Hammer        | 5          | 10.0000 | 50.0000      |
| 2           | Corkscrew     | 2          | 7.5000  | 15.0000      |
| 3           | Kettle        | 3          | 25.1500 | 75.4500      |
+-------------+---------------+------------+---------+--------------+

Dalam hal ini, kolom terakhir adalah kolom yang dihitung. Ini mengalikan kolom kuantitas dengan kolom harga. Ini memungkinkan kami untuk mendapatkan nilai total produk yang saat ini tersedia.

Contoh 2 – Membuat Kolom Komputasi Persisten

Anda dapat membuat kolom komputasi tetap dengan menambahkan PERSISTED argumen. Ini akan menghasilkan nilai yang dihitung secara fisik disimpan dalam tabel. Jika tidak bertahan, maka nilainya dihitung setiap kali Anda membaca kolom yang dihitung.

Berikut adalah contoh kode yang sama dengan yang sebelumnya, kecuali kali ini saya membuat kolom komputasi tetap:

CREATE TABLE Products
  (
    ProductID int IDENTITY (1,1) NOT NULL,
    ProductName varchar(255), 
    Quantity smallint,
    Price money,
    TotalValue AS Quantity * Price PERSISTED
  );

Satu-satunya perbedaan adalah PERSISTED argumen.

Contoh 3 – Perbarui Nilai

Sekarang jika nilai diperbarui dalam Quantity atau Price kolom, ini akan mempengaruhi nilai total yang dikembalikan oleh kolom yang dihitung. Ini akan terjadi apakah kolom tersebut tetap ada atau tidak.

Jika seseorang membeli palu misalnya, ini akan mempengaruhi nilai total yang dikembalikan oleh kolom yang dihitung:

UPDATE Products
SET Quantity = 4
WHERE ProductId = 1;

SELECT *
FROM Products;

Hasil:

+-------------+---------------+------------+---------+--------------+
| ProductID   | ProductName   | Quantity   | Price   | TotalValue   |
|-------------+---------------+------------+---------+--------------|
| 1           | Hammer        | 4          | 10.0000 | 40.0000      |
| 2           | Corkscrew     | 2          | 7.5000  | 15.0000      |
| 3           | Kettle        | 3          | 25.1500 | 75.4500      |
+-------------+---------------+------------+---------+--------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat kunci utama komposit di SQL Server

  2. Parsing nama file dan path dari path lengkap

  3. Bagaimana cara menggunakan fungsi CONCAT di SQL Server 2008 R2?

  4. OLTP Dalam Memori:Apa yang baru di SQL Server 2016

  5. SQL Server Query:Cepat dengan Literal tetapi Lambat dengan Variabel