10.3.1Khối BEGI N… END

Một phần của tài liệu Giáo trình SQL Server 2000 pdf (Trang 99 - 101)

CƠ BẢN VỀ LẬP TRÌNH BẰNG TRANSACT- SQL

10.3.1Khối BEGI N… END

Là một cấu trúc điều kiển, cho phép thực thi một hoặc nhiều phát biểu tùy thuộc vào một điều kiện nào đĩ. câu lệnh để thực thi một khối các câu lệnh theo một điều kiện nào đĩ. Cú pháp: IF condition {statements} [ ELSE [Condition 1] {statements}]

Condition: là một biểu thức logic, cĩ giá trị True hoặc False.Tùy thuộc vào

condition, một trong hai khối lệnh sẽ được thực thi.

Ví dụ 1: Kiểm tra xem trong Customers của NorthWind cĩ chứa các khách hàng đến từ Germany khơng?

USE NorthWind

IF (SELECT COUNT(*) FROM Customers WHERE Country='Germany') > 0

BEGIN

Print ' Cĩ tồn tại các khách hàng từ Germany ở trong cơ sở dữ liệu.'

Print ' statements to process German customers'

ELSE

BEGIN

PRINT ' Khơng cĩ khách hàng đến tử Germany trong cơ sở dữ liệu.'

END Ví dụ 2:

USE pubs GO

DECLARE @msg varchar(255)

IF ( SELECT COUNT(price) FROM titles

WHERE title_id LIKE 'TC%' AND price BETWEEN 10 AND 20) > 0

BEGIN

SET NOCOUNT ON

SET @msg = 'Cĩ vài quyển sách cĩ giá từ $10 đến $20. Các sách đĩ là:'

PRINT @msg

SELECT title FROM titles

WHERE title_id LIKE 'TC%' AND price BETWEEN 10 AND 20

END ELSE BEGIN

SET NOCOUNT ON

SET @msg = 'Khơng cĩ quyển sách nào cĩ giá từ $10 đến $20. Bạn nên tham khảo các quyễn sách cĩ giá nhỏ hơn $10 sau đây.'

PRINT @msg

SELECT title FROM titles

WHERE title_id LIKE 'TC%' AND price < 10 END

Ví dụ 3:

USE pubs

IF (SELECT AVG(price) FROM titles WHERE type = 'mod_cook') < $15

BEGIN

PRINT 'The following titles are excellent mod_cook books:'

PRINT ' '

SELECT SUBSTRING(title, 1, 35) AS Title FROM titles WHERE type = 'mod_cook'

END ELSE

IF (SELECT AVG(price)

FROM titles WHERE type = 'mod_cook')> $15

BEGIN

PRINT 'The following titles are expensive mod_cook books:'

PRINT ' '

SELECT SUBSTRING(title, 1, 35) AS Title FROM titles WHERE type = 'mod_cook' END

10.3.4 Biểu thức CASE.

Biểu thức CASE là một biểu thức điều kiện được áp dụng bên trong một phát biểu khác. Case trả về các giá trị khác nhau tuỳ thuộc vào điều kiện hoặc một điều khiển nào đĩ.

Dạng 1:

CASE input_expression

WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ] END Dạng 2: CASE

Một phần của tài liệu Giáo trình SQL Server 2000 pdf (Trang 99 - 101)

Tải bản đầy đủ (DOC)

(149 trang)
w