Updating Data Using the CASE Expression : Update « Insert Delete Update « SQL Server / T-SQL Tutorial






6>
7> CREATE TABLE sales(
8>    stor_id        char(4)           NOT NULL,
9>    ord_num        varchar(20)       NOT NULL,
10>    ord_date       datetime          NOT NULL,
11>    qty            smallint          NOT NULL,
12>    payterms       varchar(12)       NOT NULL,
13>    title_id       varchar(80)
14> )
15> GO
1> insert sales values('1', 'QA7442.3', '09/13/94', 75, 'ON Billing','1')
2> insert sales values('2', 'D4482',    '09/14/94', 10, 'Net 60',    '1')
3> insert sales values('3', 'N914008',  '09/14/94', 20, 'Net 30',    '2')
4> insert sales values('4', 'N914014',  '09/14/94', 25, 'Net 30',    '3')
5> insert sales values('5', '423LL922', '09/14/94', 15, 'ON Billing','3')
6> insert sales values('6', '423LL930', '09/14/94', 10, 'ON Billing','2')
7> GO

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)
1>
2>
3>     UPDATE sales
4>     SET payterms =
5>         CASE
6>             WHEN (SELECT SUM(qty) FROM sales s1
7>                 WHERE sales.stor_id = s1.stor_id) < 10
8>                 THEN 'On Billing'
9>             WHEN (SELECT SUM(qty) FROM sales s1
10>                 WHERE sales.stor_id = s1.stor_id) < 100
11>                 THEN 'Net 30'
12>             ELSE 'Net 60'
13>         END
14>     GO

(6 rows affected)
1>
2>     SELECT stor_id, SUBSTRING(ord_num,1,5) ord_num,
3>             ord_date, qty, payterms, title_id FROM sales
4>     GO
stor_id ord_num ord_date                qty    payterms     title_id
------- ------- ----------------------- ------ ------------ --------------------------------------------------------------------------------
1       QA744   1994-09-13 00:00:00.000     75 Net 30       1
2       D4482   1994-09-14 00:00:00.000     10 Net 30       1
3       N9140   1994-09-14 00:00:00.000     20 Net 30       2
4       N9140   1994-09-14 00:00:00.000     25 Net 30       3
5       423LL   1994-09-14 00:00:00.000     15 Net 30       3
6       423LL   1994-09-14 00:00:00.000     10 Net 30       2

(6 rows affected)
1>
2> drop table sales;
3> GO








2.5.Update
2.5.1.The syntax of the UPDATE statement
2.5.2.Syntax of UPDATE with a Join
2.5.3.An UPDATE statement that updates all the Billings for a Banker based on the Banker's name
2.5.4.An UPDATE statement that changes the terms of all Billings for Bankers in three states
2.5.5.Limiting Rows to Be Updated
2.5.6.Assigning Update Values Using Subqueries
2.5.7.An UPDATE statement that uses an arithmetic expression to assign a value to a column
2.5.8.Updating using two subqueries.
2.5.9.Updating Data Using the CASE Expression
2.5.10.An UPDATE statement that assigns the maximum due date in the table to a specific Billing
2.5.11.Violating the constraint in an update statement
2.5.12.SET other columns to their default value
2.5.13.Change the phone number of authors living in Gary, IN, back to the DEFAULT value
2.5.14.An UPDATE statement with top
2.5.15.Update table in a transaction
2.5.16.Updating Large Value Data Type Columns with WRITE