Danh mục

Hàm CASE trong SQL Server 2005 Phần 3

Số trang: 6      Loại file: pdf      Dung lượng: 171.48 KB      Lượt xem: 11      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trong phần một và hai của loạt bài này, chúng tôi đã giải thích cách sử dụng các hàm CASE đơn giản trong truy vấn.
Nội dung trích xuất từ tài liệu:
Hàm CASE trong SQL Server 2005 Phần 3Hàm CASE trong SQL Server 2005 (Phần 3)Nguồn:quantrimang.comTrong phần một và hai của loạt bài này, chúng tôi đã giải thích cách sửdụng các hàm CASE đơn giản trong truy vấn. Phần này sẽ hướng dẫn cáchsử dụng hàm CASE trong các mệnh đề như GROUP BYPhương thức 6: Sử dụng hàm CASE đơn giản trong mệnh đề GROUP BYGiả sử chúng ta có bảng sauset quoted_identifier offgouse tempdbgoif exists (select * from dbo.sysobjects where id =object_id(N[emp])and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table [emp]GOcreate table Emp (id int, [First name] varchar(50),[Last name] varchar(50), Salary money, state char(2))goinsert into Emp (id,[First name],[Last name], salary, State)values (1,John,Smith,120000,WA)insert into Emp (id,[First name],[Last name], salary, State)values (2,James,Bond,95000,OR)insert into Emp (id,[First name],[Last name], salary ,State)values (3,Alexa,Mantena,200000,WY)insert into Emp (id,[First name],[Last name], salary, State)values (4,Shui,Qui,36000,CO)insert into Emp (id,[First name],[Last name], salary, State)values (5,William,Hsu,39000,NE)insert into Emp (id,[First name],[Last name], salary ,State)values (6,Danielle,Stewart,50000,TX)insert into Emp (id,[First name],[Last name],salary , State) values (7,Martha,Mcgrath,400000,PA)insert into Emp (id,[First name],[Last name],salary, State ) values (8,Henry,Fayol,75000,NJ)insert into Emp (id,[First name],[Last name],salary, State ) values (9,Dick,Watson,91000,NY)insert into Emp (id,[First name],[Last name],salary, State ) values (10,Helen,Foster,124000,AK)goVà giờ muốn tạo thêm cột TimeZone (thời gian theo vị trí địa lý) dựa vào State(bang của Mỹ)select id,[First name],[Last name], salary, Timezone = casewhen state in (WA,OR,NE,CO) then Pacificwhen state in(NY,NJ,VT,ME,NH,MA,RI,CT,PA,DE,MD,DC,VA,WV,MI,IN,OH,KY,NC,GA,FL) thenEasternwhen state in (MT,ID,WY,UT, CO,AZ,NM) thenMountainwhen state in(ND,SD,NE,KS,OK,TX,MN,IA,MO,AR,LA,WI,IL,TN,MS,AL) then Centralwhen state in (AK) then Alaskanwhen state in (HA) then Hawaii endfrom empHàm trên sẽ cho kết quả như sauid First name Last name salary Timezone-----------------------------------------------------------------------1 John Smith 120000.00 Pacific2 James Bond 95000.00 Pacific3 Alea Mantena 200000.00 Mountain4 Shui Qui 36000.00 Pacific5 William Hsu 39000.00 Pacific6 Danielle Stewart 50000.00 Central7 Martha Mcgrath 400000.00 Eastern8 Henry Fayol 75000.00 Eastern9 Dick Watson 91000.00 Eastern10 Helen Foster 124000.00 AlaskanGiờ chúng ta lại muốn xem tất cả thông tin ở các dòng có Timezone là Easternvà Mountainselect * from (select id,[First name],[Last name], salary, Timezone = casewhen state in (WA,OR,NE,CO) then Pacificwhen state in(NY,NJ,VT,ME,NH,MA,RI,CT,PA,DE,MD,DC,VA,WV,MI,IN,OH,KY,NC,GA,FL) thenEasternwhen state in(MT,ID,WY,UT, CO,AZ,NM) then Mountainwhen state in(ND,SD,NE,KS,OK,TX,MN,IA,MO,AR,LA,WI,IL,TN,MS,AL) then Centralwhen state in (AK) then Hawaii endfrom emp) as mytype where TimeZone in(Mountain,eastern)Kết quả hàm này như sauid First name Last name salary Timezone3 Alexa Mantena 200000.00 Mountain7 Martha Mcgrath 400000.00 Eastern8 Henry Fayol 75000.00 Eastern9 Dick Watson 91000.00 EasternGiờ chúng ta có bảng trên và bạn lại muốn hiển thị giá trị trung bình của lươngdựa trên vùng thời gian (Timezone)select avg(salary) as AverageSalary, Timezone = casewhen state in (WA,OR,NE,CO) then Pacificwhen state in(NY,NJ,VT,ME,NH,MA,RI,CT,PA,DE,MD,DC,VA,WV,MI,IN,OH,KY,NC,GA,FL) thenEasternwhen state in (MT,ID,WY,UT, CO,AZ,NM) thenMountainwhen state in(ND,SD,NE,KS,OK,TX,MN,IA,MO,AR,LA,WI,IL,TN,MS,AL) then Centralwhen state in (AK) then Alaskanwhen state in (HA) then Hawaii endfrom emp group bycasewhen state in (WA,OR,NE,CO) then Pacificwhen state in(NY,NJ,VT,ME,NH,MA,RI,CT,PA,DE,MD,DC,VA,WV,MI,IN,OH,KY,NC,GA,FL) thenEasternwhen state in (MT,ID,WY,UT, CO,AZ,NM) thenMountainwhen state in(ND,SD,NE,KS,OK,TX,MN,IA,MO,AR,LA,WI,IL,TN ...

Tài liệu được xem nhiều:

Gợi ý tài liệu liên quan: