Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Aktualizacja jednej kolumny na podstawie wartości innej kolumny

Postaram się to wyjaśnić w możliwie najprostszy sposób, aby było to łatwe do zrozumienia :

Załóżmy, że masz tabelę Vendor skonfigurować coś takiego:

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

A następnie wstawimy kilka przykładowych wartości dla obu kolumn w Vendor tabela:

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

Następnie napiszemy oświadczenie aktualizujące, aby zaktualizować Twój ulARAgeing kolumna na podstawie wartości w AccountTerms kolumna w tej samej tabeli:

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 jest podobne do używania IF..ELSE oświadczenie w większości innych języków programowania. Dlatego tutaj będziemy aktualizować istniejące ulARAgeing wartość na inną wartość ciągu na podstawie warunku w przypadku instrukcji when. Tak więc m.in. jeśli AccountTerms = 0 wtedy zaktualizujemy wartość ulARAgeing na „Bieżący” i tak dalej.

Aby sprawdzić, czy powyższa instrukcja działa poprawnie, wystarczy uruchomić powyższą instrukcję aktualizacji, a następnie ponownie wybrać z tabeli:

 select * from Vendor; 

Wynik:

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

Pokaz 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. Sformatować czas jako 24-godzinny czas wojskowy?

  2. Połączenie SQL 6 tabel

  3. Maksymalna przestrzeń rzeczywista w varbinary (max) w SQL Server

  4. Skryptuj wszystkie dane z bazy danych SQL Server

  5. Jak wykonać sp_send_dbmail przy ograniczeniu uprawnień