Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách hoạt động của câu lệnh IF trong SQL Server

Hầu hết (có thể là tất cả ) ngôn ngữ lập trình bao gồm một số dạng của IF câu lệnh cho phép người lập trình viết mã điều kiện. Đó là, mã sẽ chỉ thực thi nếu một điều kiện nhất định là đúng.

Đó là một khái niệm rất đơn giản. Về cơ bản nó diễn ra như thế này:

“Nếu điều này, hãy làm điều đó.”

Hầu hết các ngôn ngữ chỉ gọi nó là IF , nhưng một số có cách đặt tên riêng (ví dụ:trong ColdFusion / CFML, nó được gọi là CFIF ).

Trong mọi trường hợp, về cơ bản chúng đều làm điều tương tự.

Trong SQL Server (hay chính xác hơn là ngôn ngữ lập trình T-SQL), nó được gọi là IF .

Ví dụ

Dưới đây là một ví dụ cơ bản để chứng minh cách IF tuyên bố hoạt động.

IF 1 < 2 SELECT 'True';

Kết quả:

True

Trong trường hợp này, biểu thức để đánh giá là 1 < 2 . Đúng là 1 nhỏ hơn 2 nên SELECT câu lệnh đã được chạy và True đã được trả lại.

Tuy nhiên, nếu biểu thức là false, sẽ không có gì xảy ra.

Ví dụ sau minh họa điều này:

IF 1 > 2 SELECT 'True';

Kết quả:

Commands completed successfully.

Tất cả những gì SQL Server nói với tôi là lệnh đã hoàn tất thành công. Không có gì khác được trả lại, vì không có gì khác được chỉ định.

Câu lệnh IF… ELSE

Trong SQL Server, IF câu lệnh đi kèm với một ELSE tùy chọn , cho phép bạn cung cấp một phương án thay thế, trong trường hợp biểu thức trả về giá trị false.

Do đó, nó giống như nói “NẾU điều này, hãy làm điều này, ELSE, hãy làm điều này”.

Trong trường hợp này, chúng ta có thể thêm ELSE tùy chọn đến IF để nó trở thành một câu lệnh IF... ELSE tuyên bố.

IF 1 > 2
       SELECT 'True';
ELSE 
       SELECT 'False';

Kết quả:

False

Bây giờ chúng ta cũng nhận được kết quả khi biểu thức là sai.

Câu lệnh IF lồng nhau

Một trong những điều tuyệt vời về IF là bạn có thể lồng chúng vào nhau. Đó là, bạn có thể thêm IF các câu lệnh bên trong câu lệnh ban đầu của bạn và nhiều hơn nữa bên trong những câu lệnh đó, v.v.

Bạn có thể lồng bao nhiêu IF tuyên bố như bạn muốn. Bạn chỉ bị giới hạn bởi số lượng bộ nhớ khả dụng.

Dưới đây là một ví dụ về lồng một IF bên trong một câu lệnh khác.

DECLARE @bankBalance int = 123;
IF @bankBalance > 100
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE
        SELECT 'Wealthy';
ELSE 
    SELECT 'Poor';

Kết quả:

Wealthy

IF… Câu lệnh ELSE IF

Bạn cũng có thể sử dụng nó như một IF... ELSE IF tuyên bố.

DECLARE @bankBalance int = 123;
IF @bankBalance > 150
    SELECT 'Rich!';
ELSE IF @bankBalance > 100
    SELECT 'Wealthy';
ELSE
    SELECT 'Poor';

Kết quả:

Wealthy

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ký tự rỗng trong TSQL là gì?

  2. Lấy hình ảnh từ cơ sở dữ liệu trong asp.net

  3. Đo lường hiệu suất truy vấn:Chi phí truy vấn kế hoạch thực hiện so với thời gian thực hiện

  4. Chức năng tách trong SQL Server 2008

  5. SQL Server phụ thuộc