Hàm CASE về SQL Server
Số trang: 10
Loại file: pdf
Dung lượng: 242.08 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Trong SQL Sever, hàm CASE kiểm định giá trị dựa trên danh sách điều kiện đưa ra, sau đó trả về một hoặc nhiều kết quả. Ở bài này chúng tôi sẽ minh hoạ một số cách dùng khác nhau của hàm này trong những trường hợp khác nhau. Phương thức 1: Cách dùng hàm CASE đơn giản Đây là cách dùng phổ biến nhất của hàm case, trong đó bạn có thể tạo giá trị vô hướng dựa trên danh sách điều kiện đưa ra. Giả sử chúng ta có bảng sau với các cột id (mã số nhân...
Nội dung trích xuất từ tài liệu:
Hàm CASE về SQL Server Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hàm CASE trong SQL Server (phần 1) Trong SQL Sever, hàm CASE kiểm định giá trị dựa trên danh sách điều kiện đưa ra, sau đó trả về một hoặc nhiều kết quả. Ở bài này chúng tôi sẽ minh hoạ một số cách dùng khác nhau của hàm này trong nh ững trường hợp khác nhau. Phương thức 1: Cách dùng hàm CASE đơn giản Đây là cách dùng phổ biến nhất của hàm case, trong đó bạn có thể tạo giá trị vô hướng dựa trên danh sách điều kiện đưa ra. Giả sử chúng ta có bảng sau với các cột id (mã số nhân viên), [First name] (tên), [Last name] (họ) và gender (giới tính). Bây giờ, chúng ta muốn tạo thêm tiền tố (Mr, Ms) ở phía trước từng tên, dựa trên giá trị của cột Gender, thực hiện như sau: use tempdb go if exists (select * from dbo.sysobjects where id = object_id(N'[emp]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [emp] GO create table Emp (id int, [First name] varchar(50), [Last name] varchar(50), gender char(1)) go insert into Emp (id,[First name],[Last name], gender ) values (1,'John','Smith','m') insert into Emp (id,[First name],[Last name], gender ) values (2,'James','Bond','m') insert into Emp (id,[First name],[Last name], gender ) values (3,'Alexa','Mantena','f') insert into Emp (id,[First name],[Last name], gender ) values (4,'Shui','Qui','f') insert into Emp (id,[First name],[Last name], gender ) values (5,'William','Hsu','m') Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com insert into Emp (id,[First name],[Last name], gender ) values (6,'Danielle','Stewart','F') insert into Emp (id,[First name],[Last name], gender ) values (7,'Martha','Mcgrath','F') insert into Emp (id,[First name],[Last name], gender ) values (8,'Henry','Fayol','m') insert into Emp (id,[First name],[Last name], gender ) values (9,'Dick','Watson','m') insert into Emp (id,[First name],[Last name], gender ) values (10,'Helen','Foster','F') go Bây giờ, tạo cột [Full name] (họ tên đ ầy đủ) để xác định nên đặt tiền tố là “Mr.” hay “Ms.”, dựa vào giá trị trên cột Gender. Select [id],[Full Name] = case Gender when 'm' then 'Mr. '+[First name]+ ' '+[Last name] when 'f' then 'Ms. '+[First name]+ ' '+[Last name] end from Emp Thủ tục này trả về kết quả như hình bên dưới: id Full Name ----------- ---------------- 1 Mr. John Smith 2 Mr. James Bond 3 Ms. Alexa Mantena 4 Ms. Shui Qui 5 Mr. William Hsu 6 Ms. Danielle Stewart 7 Ms. Martha Mcgrath 8 Mr. Henry Fayol 9 Mr. Dick Watson 10 Ms. Helen Foster Phương thức 2: Sử dụng hàm case đơn giản với mệnh đề ELSE Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Nếu thêm một hàng với giá trị NULL vào cột gender, bạn sẽ không thấy có tên nào được trả về trong tập hợp kết quả. Chèn hàng sau vào bảng emp: use tempdb go insert into Emp (id,[First name],[Last name], gender ) values (11,'Tom','Gabe',NULL) go Bây giờ tạo cột [Full name] để xác định tiền tố đặt trước mỗi tên là “Mr.” hay “Ms.”, dựa trên giá trị lấy ở cột Gender: Select [id],[Full Name] = case Gender when 'm' then 'Mr. '+[First name]+ ' '+[Last name] when 'f' then 'Ms. '+[First name]+ ' '+[Last name] end from Emp Kết quả trả về như sau: id Full Name ----------- ------------------------ 1 Mr. John Smith 2 Mr. James Bond 3 Ms. Alexa Mantena 4 Ms. Shui Qui 5 Mr. William Hsu 6 Ms. Danielle Stewart 7 Ms. Martha Mcgrath 8 Mr. Henry Fayol 9 Mr. Dick Watson 10 Ms. Helen Foster 11 NULL Tuy nhiên, chúng ta cần hiển thị Full Name (họ tên đầy đủ) của nhân viên, kể cả trong trường hợp không có giá trị trên Gender. Để thực hiện điều này, bạn cần dùng hàm CASE với mệnh đề ELSE. Thực hiện truy vấn như sau: Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Select [id],[Full Name] = case Gender when 'm' then 'Mr. '+[First name]+ ' '+[Last name] when 'f' then 'Mz. '+[First name]+ ' '+[Last name] else [First name]+ ' '+[Last name] end from Emp Kết quả trả về như sau: id Full Name ----------- ---------------------- 1 Mr. John Smith 2 Mr. James Bond 3 Mz. Alexa Mantena 4 Mz. Shui Qui 5 Mr. William Hsu 6 Mz. D ...
Nội dung trích xuất từ tài liệu:
Hàm CASE về SQL Server Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Hàm CASE trong SQL Server (phần 1) Trong SQL Sever, hàm CASE kiểm định giá trị dựa trên danh sách điều kiện đưa ra, sau đó trả về một hoặc nhiều kết quả. Ở bài này chúng tôi sẽ minh hoạ một số cách dùng khác nhau của hàm này trong nh ững trường hợp khác nhau. Phương thức 1: Cách dùng hàm CASE đơn giản Đây là cách dùng phổ biến nhất của hàm case, trong đó bạn có thể tạo giá trị vô hướng dựa trên danh sách điều kiện đưa ra. Giả sử chúng ta có bảng sau với các cột id (mã số nhân viên), [First name] (tên), [Last name] (họ) và gender (giới tính). Bây giờ, chúng ta muốn tạo thêm tiền tố (Mr, Ms) ở phía trước từng tên, dựa trên giá trị của cột Gender, thực hiện như sau: use tempdb go if exists (select * from dbo.sysobjects where id = object_id(N'[emp]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [emp] GO create table Emp (id int, [First name] varchar(50), [Last name] varchar(50), gender char(1)) go insert into Emp (id,[First name],[Last name], gender ) values (1,'John','Smith','m') insert into Emp (id,[First name],[Last name], gender ) values (2,'James','Bond','m') insert into Emp (id,[First name],[Last name], gender ) values (3,'Alexa','Mantena','f') insert into Emp (id,[First name],[Last name], gender ) values (4,'Shui','Qui','f') insert into Emp (id,[First name],[Last name], gender ) values (5,'William','Hsu','m') Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com insert into Emp (id,[First name],[Last name], gender ) values (6,'Danielle','Stewart','F') insert into Emp (id,[First name],[Last name], gender ) values (7,'Martha','Mcgrath','F') insert into Emp (id,[First name],[Last name], gender ) values (8,'Henry','Fayol','m') insert into Emp (id,[First name],[Last name], gender ) values (9,'Dick','Watson','m') insert into Emp (id,[First name],[Last name], gender ) values (10,'Helen','Foster','F') go Bây giờ, tạo cột [Full name] (họ tên đ ầy đủ) để xác định nên đặt tiền tố là “Mr.” hay “Ms.”, dựa vào giá trị trên cột Gender. Select [id],[Full Name] = case Gender when 'm' then 'Mr. '+[First name]+ ' '+[Last name] when 'f' then 'Ms. '+[First name]+ ' '+[Last name] end from Emp Thủ tục này trả về kết quả như hình bên dưới: id Full Name ----------- ---------------- 1 Mr. John Smith 2 Mr. James Bond 3 Ms. Alexa Mantena 4 Ms. Shui Qui 5 Mr. William Hsu 6 Ms. Danielle Stewart 7 Ms. Martha Mcgrath 8 Mr. Henry Fayol 9 Mr. Dick Watson 10 Ms. Helen Foster Phương thức 2: Sử dụng hàm case đơn giản với mệnh đề ELSE Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Nếu thêm một hàng với giá trị NULL vào cột gender, bạn sẽ không thấy có tên nào được trả về trong tập hợp kết quả. Chèn hàng sau vào bảng emp: use tempdb go insert into Emp (id,[First name],[Last name], gender ) values (11,'Tom','Gabe',NULL) go Bây giờ tạo cột [Full name] để xác định tiền tố đặt trước mỗi tên là “Mr.” hay “Ms.”, dựa trên giá trị lấy ở cột Gender: Select [id],[Full Name] = case Gender when 'm' then 'Mr. '+[First name]+ ' '+[Last name] when 'f' then 'Ms. '+[First name]+ ' '+[Last name] end from Emp Kết quả trả về như sau: id Full Name ----------- ------------------------ 1 Mr. John Smith 2 Mr. James Bond 3 Ms. Alexa Mantena 4 Ms. Shui Qui 5 Mr. William Hsu 6 Ms. Danielle Stewart 7 Ms. Martha Mcgrath 8 Mr. Henry Fayol 9 Mr. Dick Watson 10 Ms. Helen Foster 11 NULL Tuy nhiên, chúng ta cần hiển thị Full Name (họ tên đầy đủ) của nhân viên, kể cả trong trường hợp không có giá trị trên Gender. Để thực hiện điều này, bạn cần dùng hàm CASE với mệnh đề ELSE. Thực hiện truy vấn như sau: Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Select [id],[Full Name] = case Gender when 'm' then 'Mr. '+[First name]+ ' '+[Last name] when 'f' then 'Mz. '+[First name]+ ' '+[Last name] else [First name]+ ' '+[Last name] end from Emp Kết quả trả về như sau: id Full Name ----------- ---------------------- 1 Mr. John Smith 2 Mr. James Bond 3 Mz. Alexa Mantena 4 Mz. Shui Qui 5 Mr. William Hsu 6 Mz. D ...
Tìm kiếm theo từ khóa liên quan:
tài liệu máy tính thủ thuật máy tính mẹo cài đặt quản trị dữ liệu cơ sở dữ liệu kiến trúc dữ liệuGợi ý tài liệu liên quan:
-
62 trang 401 3 0
-
Đề thi kết thúc học phần học kì 2 môn Cơ sở dữ liệu năm 2019-2020 có đáp án - Trường ĐH Đồng Tháp
5 trang 376 6 0 -
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 309 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 307 1 0 -
Làm việc với Read Only Domain Controllers
20 trang 296 0 0 -
13 trang 290 0 0
-
Giáo trình Cơ sở dữ liệu: Phần 2 - TS. Nguyễn Hoàng Sơn
158 trang 289 0 0 -
Phân tích thiết kế hệ thống - Biểu đồ trạng thái
20 trang 283 0 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 281 2 0 -
Tài liệu học tập Tin học văn phòng: Phần 2 - Vũ Thu Uyên
85 trang 254 1 0