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

Memperbarui satu kolom berdasarkan nilai kolom lain

Saya akan mencoba menjelaskan ini sesederhana mungkin agar mudah dipahami :

Mari kita asumsikan, Anda memiliki tabel Vendor siapkan sesuatu seperti ini:

create table Vendor (AccountTerms int, ulARAgeing varchar(50));

Dan, kemudian kita akan memasukkan beberapa nilai sampel untuk kedua kolom di Vendor tabel:

insert into Vendor values
(0,'Test'),
(1,'Test1'),
(2,'Test2');

Selanjutnya, kami akan menulis pernyataan pembaruan untuk memperbarui ulARAgeing Anda kolom berdasarkan nilai dalam AccountTerms kolom dalam tabel yang sama:

update vendor 
set ulARAgeing = (CASE 
                      WHEN AccountTerms = 0 
                        THEN 'Current'
                      WHEN AccountTerms = 1
                        THEN '30 Days'
                      WHEN AccountTerms = 2
                        THEN '60 Days'
                    END);

CASE WHEN mirip dengan menggunakan IF..ELSE pernyataan di sebagian besar bahasa pemrograman lainnya. Jadi, di sini kami akan memperbarui ulARAgeing yang ada nilai ke nilai string yang berbeda berdasarkan kondisi dalam pernyataan kasus ketika. Jadi, misalnya jika AccountTerms = 0 maka kami akan memperbarui nilai untuk ulARAgeing ke `Saat ini' dan seterusnya.

Untuk memeriksa apakah pernyataan di atas berfungsi dengan benar, Anda hanya perlu menjalankan pernyataan pembaruan di atas, lalu memilih dari tabel lagi:

 select * from Vendor; 

Hasil:

+--------------+-----------------+
| AccountTerms |   ulARAgeing    |
+--------------+-----------------+
|            0 |         Current |
|            1 |         30 Days |
|            2 |         60 Days |
+--------------+-----------------+

Demo Fiddle 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. 5 Fakta Teratas untuk Menemukan dan Mengganti Teks SQL di SQL Server dengan Fungsi REPLACE

  2. TSQL - Perbandingan Tanggal Kasus

  3. Bagaimana menghitung RowTotal dari CTE yang berjalan dalam waktu yang lebih singkat

  4. Apakah mungkin untuk menolak akses ke SQL Server dari program tertentu?

  5. Bagaimana memilih beberapa kolom tertentu dari tabel jika tabel memiliki lebih dari 100 kolom