Summarizing Data Using the Searched CASE Expression : Case « Query « SQL Server / T-SQL Tutorial






6>
7> CREATE TABLE stores(
8>    stor_id        char(4)           NOT NULL,
9>    stor_name      varchar(40)           NULL,
10>    stor_address   varchar(40)           NULL,
11>    city           varchar(20)           NULL,
12>    state          char(2)               NULL,
13>    zip            char(5)               NULL
14> )
15> GO
1> insert stores values('1','B','567 Ave.','Tustin',   'CA','92789')
2> insert stores values('2','N','577 St.', 'Los Gatos','CA','96745')
3> insert stores values('3','T','679 St.', 'Portland', 'OR','89076')
4> insert stores values('4','F','89  St.', 'Fremont',  'CA','90019')
5> GO

(1 rows affected)

(1 rows affected)

(1 rows affected)

(1 rows affected)
1>
2> CREATE TABLE sales(
3>    stor_id        char(4)           NOT NULL,
4>    ord_num        varchar(20)       NOT NULL,
5>    ord_date       datetime          NOT NULL,
6>    qty            smallint          NOT NULL,
7>    payterms       varchar(12)       NOT NULL,
8>    title_id       varchar(80)
9> )
10> 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>     SELECT DISTINCT st.stor_name,
3>     'Sales Rating' =
4>         CASE
5>           WHEN (SELECT SUM(sa.qty) FROM sales sa
6>                                    WHERE st.stor_id = sa.stor_id) < 10
7>               THEN 'Poor'
8>           WHEN (SELECT SUM(sa.qty) FROM sales sa
9>                                    WHERE st.stor_id = sa.stor_id) < 80
10>               THEN 'Average'
11>           WHEN (SELECT SUM(sa.qty) FROM sales sa
12>                                    WHERE st.stor_id = sa.stor_id) < 100
13>               THEN 'Good'
14>           ELSE 'Excellent'
15>         END,
16>     'Sales Total' = (SELECT SUM(sa.qty) FROM sales sa
17>                                         WHERE st.stor_id = sa.stor_id)
18>     FROM stores st, sales sa
19>     ORDER BY 'Sales Total'
20> GO
stor_name                                Sales Rating Sales Total
---------------------------------------- ------------ -----------
N                                        Average               10
T                                        Average               20
F                                        Average               25
B                                        Average               75

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








1.23.Case
1.23.1.The syntax pattern for case
1.23.2.The syntax of the searched CASE function
1.23.3.A Simple CASE
1.23.4.CASE Expression
1.23.5.Automatic Code Generation for CASE Expressions
1.23.6.Summarizing Data Using the CASE Expression
1.23.7.Using a CASE expression to sum sales by weekday.
1.23.8.Using the CASE Expression with Complex Conditions
1.23.9.Summarizing Data Using the Searched CASE Expression
1.23.10.A SELECT statement that uses a simple CASE function
1.23.11.A SELECT statement that uses a searchable CASE function
1.23.12.Searched CASE expression looks for the first expression that evaluates to true.
1.23.13.Update statement based on case condition
1.23.14.Case when else
1.23.15.Alias for case statement
1.23.16.Use two case statements in one select statement
1.23.17.Case then with query
1.23.18.Case with range
1.23.19.Doing a calculation in a Searched CASE