Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Актуализиране на една колона въз основа на стойността на друга колона

Ще се опитам да обясня това по прост начин, доколкото е възможно, така че да е лесно за разбиране:

Да приемем, че имате таблица Vendor настройте нещо подобно:

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

След това ще вмъкнем някои примерни стойности за двете колони в Vendor таблица:

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

След това ще напишем изявление за актуализиране, за да актуализираме вашето ulARAgeing колона въз основа на стойностите в AccountTerms колона в същата таблица:

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 е подобно на използването на IF..ELSE израз в повечето други езици за програмиране. И така, тук ще актуализираме съществуващото ulARAgeing стойност към различна стойност на низ въз основа на условието в оператора case when. Така, за напр. ако AccountTerms = 0 тогава ще актуализираме стойността за ulARAgeing към `Текущ' и т.н.

За да проверите дали горният оператор работи правилно, просто трябва да изпълните акта за актуализиране по-горе и след това да изберете отново от таблицата:

 select * from Vendor; 

Резултат:

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

Демонстрация на SQL Fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Импортирайте данни от Excel от тип float към varchar в SQL Server 2008

  2. Как да внедрим полиморфни асоциации в съществуваща база данни

  3. LEN() срещу DATALENGTH() в SQL Server

  4. Намерете дублиращи се записи в таблица с помощта на SQL Server

  5. MS SQL ON DELETE CASCADE множество външни ключове, сочещи към една и съща таблица?