SQL Server IF…ELSE Δήλωση κατάστασης: Παράδειγμα επιλογής ερωτήματος T-SQL

Γιατί χρειάζεστε Δηλώσεις υπό όρους;

Οι δηλώσεις υπό όρους στον διακομιστή SQL σάς βοηθούν να ορίσετε διαφορετικές λογικές και ενέργειες για διαφορετικές συνθήκες. Σας επιτρέπει να εκτελείτε διαφορετικές ενέργειες με βάση τις συνθήκες που ορίζονται στη δήλωση. Στην πραγματική ζωή, εκτελείτε πολλές ενέργειες που εξαρτώνται από το αποτέλεσμα κάποιας άλλης δραστηριότητας ή κατάστασης.

Μερικά παραδείγματα δήλωσης υπόθεσης SQL σε πραγματικό χρόνο είναι:

  • Αν βρέξει αύριο, θα προγραμματίσω ένα οδικό ταξίδι.
  • Αν τα αεροπορικά εισιτήρια είναι λιγότερα από 400$ από την πόλη μου, τότε θα πάω διακοπές στην Ευρώπη, αλλιώς θα προτιμήσω κάποιο κοντινό τουριστικό σημείο.

Εδώ, μπορείτε να δείτε ότι μια ενέργεια, όπως το Road trip παραπάνω, είναι υπό όρους εξαρτώμενο σχετικά με το αποτέλεσμα μιας άλλης δραστηριότητας που είναι "αν θα βρέξει ή όχι αύριο!"

Ομοίως, το MS SQL παρέχει επίσης τη δυνατότητα εκτέλεσης της δήλωσης T-SQL υπό όρους.

IF… Άλλη δήλωση στον SQL Server

In MS SQL, ΑΝ… ΑΛΛΙΩΣ είναι ένας τύπος Δήλωση υπό όρους.

Οποιαδήποτε πρόταση T-SQL μπορεί να εκτελεστεί υπό όρους χρησιμοποιώντας ΑΝ… ΑΛΛΙΩΣ.

Το παρακάτω σχήμα εξηγεί IF ELSE στον διακομιστή SQL:

Πώς λειτουργεί εάν και αλλιώς
Πώς λειτουργεί εάν και αλλιώς
  • Εάν η συνθήκη αξιολογηθεί σε Αληθής, στη συνέχεια δηλώσεις T-SQL ακολουθούμενες από IF συνθήκη στον διακομιστή SQL θα εκτελεστεί.
  • Εάν η συνθήκη αξιολογηθεί σε Ψευδής, στη συνέχεια δηλώσεις T-SQL ακολουθούμενες από ELSE λέξη-κλειδί θα εκτελεστεί.
  • Μόλις εκτελεστούν είτε οι εντολές IF T-SQL είτε η εντολή ELSE T-SQL, τότε συνεχίζεται η εκτέλεση άλλων εντολών T-SQL χωρίς όρους.

IF… Αλλιώς Σύνταξη και κανόνες στην SQL

Σύνταξη:

IF <Condition>
     {Statement | Block_of_statement}   
[ ELSE   
     {Statement | Block_of_statement}]

κανόνες:

  • Η προϋπόθεση πρέπει να είναι Boolean έκφραση, δηλαδή, Η συνθήκη καταλήγει σε τιμή Boolean όταν αξιολογείται.
  • ΑΝ ΑΛΛΟΣ δήλωση σε SQL μπορεί να χειριστεί υπό όρους μία πρόταση T-SQL ή μπλοκ εντολών T-SQL.
  • Το μπλοκ δήλωσης πρέπει να ξεκινά με τη λέξη-κλειδί BEGIN και να κλείνει με τη λέξη-κλειδί ΤΕΛΟΣ.
  • Η χρήση του BEGIN και του END βοηθά τον SQL server να προσδιορίσει το μπλοκ δηλώσεων που πρέπει να εκτελεστεί και να το διαχωρίσει από τις υπόλοιπες προτάσεις T-SQL που δεν αποτελούν μέρος του μπλοκ IF…ELSE T-SQL.
  • Το ΑΛΛΟ είναι προαιρετικό.

IF…ALSE με τη μόνη αριθμητική τιμή στην Boolean Expression.

Κατάσταση: ΑΛΗΘΕΙΑ

IF (1=1)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

IF…ALSE με τη μόνη αριθμητική τιμή στην Boolean Expression

Κατάσταση: FALSE

IF (1=2)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

IF…ALSE με τη μόνη αριθμητική τιμή στην Boolean Expression

Υπόθεση: Ας υποθέσουμε ότι έχετε τον πίνακα ως 'Guru99' με δύο στήλες και τέσσερις σειρές όπως φαίνεται παρακάτω:

IF…ALSE με τη μόνη αριθμητική τιμή στην Boolean Expression

Θα το χρησιμοποιησουμε 'Guru99' πίνακα σε περαιτέρω παραδείγματα

IF…ELSE με τη μεταβλητή σε Boolean Expression.

Κατάσταση: ΑΛΗΘΕΙΑ

DECLARE @Course_ID INT = 4

IF (@Course_ID = 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

IF...ELSE με τη μεταβλητή σε Boolean Expression

Κατάσταση: FALSE

DECLARE @Course_ID INT = 4

IF (@Course_ID != 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

IF...ELSE με τη μεταβλητή σε Boolean Expression

IF…ALSE με το Begin End

Κατάσταση: ΑΛΗΘΕΙΑ

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	BEGIN
	Select * from Guru99 where Tutorial_ID = 1
	Select * from Guru99 where Tutorial_ID = 2
	END
ELSE
	BEGIN
	Select * from Guru99 where Tutorial_ID = 3
	Select * from Guru99 where Tutorial_ID = 4
	END

ΑΝ...ΑΛΛΩΣ με το Begin End

Κατάσταση: FALSE

DECLARE @Course_ID INT = 2

IF (@Course_ID >=3)
	BEGIN
	Select * from Guru99 where Tutorial_ID = 1
	Select * from Guru99 where Tutorial_ID = 2
	END
ELSE
	BEGIN
	Select * from Guru99 where Tutorial_ID = 3
	Select * from Guru99 where Tutorial_ID = 4
	END

ΑΝ...ΑΛΛΩΣ με το Begin End

Δήλωση IF με No Else

Μπορείτε να χρησιμοποιήσετε μια πρόταση IF στην SQL χωρίς τμήμα ELSE. Θυμηθείτε ότι αναφέραμε ότι το τμήμα ELSE είναι προαιρετικό. Για παράδειγμα:

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	Select * from Guru99 where Tutorial_ID = 1

Εκτυπώνει τα εξής:

Δήλωση IF με No Else

Η εκτέλεση της ψευδούς συνθήκης δεν θα δώσει έξοδο. Εξετάστε το ακόλουθο ερώτημα

DECLARE @Course_ID INT = 2

IF (@Course_ID <=0)
	Select * from Guru99 where Tutorial_ID = 1

Το αποτέλεσμα είναι

Δήλωση IF με No Else

Ένθετες δηλώσεις IF…Else

Σε αντίθεση με άλλες γλώσσες προγραμματισμού, δεν μπορείτε να προσθέσετε μια πρόταση ELSE IF σε μια συνθήκη IF ELSE στην SQL. Αυτός είναι ο λόγος για τον οποίο μπορείτε να τοποθετήσετε το IF ELSE σε δηλώσεις ερωτήματος SQL. Αποδεικνύεται παρακάτω:

 DECLARE @age INT;
SET @age = 60;

IF @age < 18
   PRINT 'underage';
ELSE
BEGIN
   IF @age < 50
      PRINT 'You are below 50';
   ELSE
      PRINT 'Senior';
END;
  • Σε αυτό το παράδειγμα, ο κωδικός θα εκτυπώσει ανήλικο εάν η τιμή του @age είναι κάτω από 18.
  • Εάν όχι, το τμήμα ELSE θα εκτελεστεί. Το τμήμα ElSE έχει ένα ένθετο IF…ELSE.
  • Εάν η τιμή του @age είναι κάτω από 50, αυτό θα εκτυπώσει Είστε κάτω από 50. Εάν καμία από αυτές τις συνθήκες δεν ισχύει, ο κωδικός θα εκτυπώσει Senior.

Ένθετες δηλώσεις IF…Else

Περίληψη

  • Οι μεταβλητές είναι το αντικείμενο που λειτουργεί ως σύμβολο κράτησης θέσης.
  • Το μπλοκ δήλωσης πρέπει να ξεκινά με τη λέξη-κλειδί BEGIN και να κλείνει με τη λέξη-κλειδί ΤΕΛΟΣ.
  • Το Else είναι προαιρετικό για χρήση στη δήλωση IF… ELSE
  • Η ένθεση της συνθήκης SQL IF ELSE σε άλλη πρόταση IF…ELSE είναι επίσης δυνατή.