CASE Statement & Nested Case στον SQL Server: Παράδειγμα T-SQL

Επισκόπηση της υπόθεσης στην πραγματική ζωή!

Και πάλι, στην πραγματική ζωή, εκτελούμε διαφορετικές ενέργειες ανάλογα με το αποτέλεσμα διαφορετικών συνθηκών.

Για περισσότερες λεπτομέρειες, λάβετε υπόψη το παρακάτω παράδειγμα:

  • Εάν τα αεροπορικά εισιτήρια είναι λιγότερα από $100, τότε θα επισκεφτώ το Λος Άντζελες.
  • Εάν τα αεροπορικά εισιτήρια είναι μεταξύ $100 και $200, τότε θα επισκεφτώ τη Νέα Υόρκη
  • Εάν τα αεροπορικά εισιτήρια είναι μεταξύ $200 και $400, τότε θα επισκεφτώ την Ευρώπη
  • Διαφορετικά, θα προτιμήσω να επισκεφτώ κάποιο κοντινό τουριστικό σημείο.

Ας εξετάσουμε την κατηγοριοποίηση της Συνθήκης και της Ενέργειας ξεχωριστά από το παραπάνω παράδειγμα παρακάτω:

Συνθήκες - Αεροπορικά εισιτήρια Ενέργειες που πραγματοποιήθηκαν, μόνο εάν η Κατάσταση είναι ΑΛΗΘΙΝΗ
Less από $ 100 Επισκεφθείτε το Λος Άντζελες
Μεταξύ $ 100 και $ 200 Επισκεφθείτε τη Νέα Υόρκη
Μεταξύ $ 200 και $ 400 Επισκεφθείτε την Ευρώπη
Καμία από τις παραπάνω προϋποθέσεις δεν πληρούται Κοντινό τουριστικό σημείο

Στο παραπάνω παράδειγμα, μπορούμε να δούμε ότι το αποτέλεσμα των διαφορετικών συνθηκών διέπει ξεχωριστή ενέργεια. Π.χ., ο Επισκέπτης θα πραγματοποιήσει την πράξη της επίσκεψης στη Νέα Υόρκη μόνο υπό την προϋπόθεση ότι το αεροπορικό εισιτήριο είναι μεταξύ $100 και $200.

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

Τι είναι η δήλωση CASE στον SQL Server;

Δήλωση CASE στον SQL Server είναι η επέκταση της δήλωσης IF…ELSE. Σε αντίθεση με το IF…ELSE, όπου επιτρέπεται μόνο το μέγιστο μιας συνθήκης, το CASE επιτρέπει στο χρήστη να εφαρμόσει πολλαπλές συνθήκες για να εκτελέσει διαφορετικά σύνολα ενεργειών στο MS SQL. Επιστρέφει μια αντίστοιχη τιμή που σχετίζεται με τη συνθήκη που έχει ορίσει ο χρήστης.

Ας μάθουμε πώς να χρησιμοποιείτε το Case σε SQL και την έννοια του στις παρακάτω ενότητες.

In MS SQL, υπάρχουν δύο τύποι CASE.

  1. Απλή ΠΕΡΙΠΤΩΣΗ
  2. Αναζητήθηκε CASE

Απλή ΠΕΡΙΠΤΩΣΗ

Η σύνταξη για την απλή υπόθεση

CASE <Case_Expression>
     WHEN Value_1 THEN Statement_1
     WHEN Value_2 THEN Statement_2
     .
     .
     WHEN Value_N THEN Statement_N
     [ELSE Statement_Else]   
END AS [ALIAS_NAME]

Εδώ,

  • Η παράμετρος Περίπτωση_Έκφραση υποδηλώνει την έκφραση με την οποία τελικά θα συγκριθούμε Τιμή_1, Τιμή_2, ...
  • Οι παράμετροι Δήλωση_1, Δήλωση_2… υποδηλώνουν τις δηλώσεις που θα εκτελεστούν εάν Case_Expression = Value_1, Case_Expression = Τιμή_2, … και ούτω καθεξής.
  • Με λίγα λόγια, το κατάσταση είναι εάν Case_Expression = Το Value_N και ACTION είναι η εκτέλεση της Statement_N εάν το το παραπάνω αποτέλεσμα είναι ΑΛΗΘΕΙΑ.
  • ΨΕΥΔΩΝΥΜΟ είναι προαιρετικό και είναι το ψευδώνυμο που δίνεται στο αποτέλεσμα της δήλωσης CASE του SQL Server. Χρησιμοποιείται κυρίως όταν χρησιμοποιούμε ρήτρα επιλογής Case σε διακομιστή SQL.

Κανόνες για απλή υπόθεση

  • Το Simple Case επιτρέπει μόνο έλεγχο ισότητας μεταξύ Case_Expression με Value_1 έως Value_N.
  • Το Case_Expression συγκρίνεται με την τιμή, με τη σειρά που ξεκινά από την πρώτη τιμή, δηλαδή, Value_1. Παρακάτω είναι η προσέγγιση εκτέλεσης:
  • Εάν το Case_Expression είναι ισοδύναμο με το Value_1, τότε παραλείπονται περαιτέρω προτάσεις WHEN…THEN και η εκτέλεση CASE θα ΤΕΛΕΙΩΣΕΙ αμέσως.
  • Εάν το Case_Expression δεν ταιριάζει με το Value_1, τότε το Case_Expression συγκρίνεται με το Value_2 για ισοδυναμία. Αυτή η διαδικασία σύγκρισης Case_Expression με Τιμή θα συνεχιστεί έως ότου η Case_Expression βρει αντίστοιχη τιμή από το σύνολο Value_1, Value_2,…
  • Εάν τίποτα δεν ταιριάζει, τότε ο έλεγχος πηγαίνει στη δήλωση ELSE και το Statement_Else θα εκτελεστεί.
  • Το ΑΛΛΟ είναι προαιρετικό.
  • Εάν το ELSE δεν υπάρχει και το Case_Expression ταιριάζει με καμία από τις τιμές, τότε Θα εμφανιστεί το Null.

Το παρακάτω διάγραμμα απεικονίζει τη ροή εκτέλεσης του Simple Case.

Working of Simple Case Statement
Working of Simple Case Statement

Παραδείγματα

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

Απλή περίπτωση στον SQL Server

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

Ερώτημα 1: ΑΠΛΗ ΠΕΡΙΠΤΩΣΗ με την επιλογή ΟΧΙ ΑΛΛΟ

SELECT Tutorial_ID, Tutorial_name,
CASE Tutorial_name
	WHEN 'SQL' THEN 'SQL is developed by IBM'
	WHEN 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
END AS Description
FROM Guru99

Αποτέλεσμα: Το παρακάτω διάγραμμα εξηγεί τη ροή εκτέλεσης μιας ΑΠΛΗς ΠΕΡΙΠΤΩΣΗΣ χωρίς ΑΛΛΟ.

Απλή περίπτωση στον SQL Server

Ερώτημα 2: ΑΠΛΗ ΠΕΡΙΠΤΩΣΗ με την επιλογή ΑΛΛΟ.

SELECT Tutorial_ID, Tutorial_name,
CASE Tutorial_name
	WHEN 'SQL' THEN 'SQL is developed by IBM'
	WHEN 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
	ELSE 'This is NO SQL language.'
END AS Description
FROM Guru99

Αποτέλεσμα: Το παρακάτω διάγραμμα εξηγεί τη ροή εκτέλεσης μιας SIMPLE CASE με το ELSE.

Απλή περίπτωση στον SQL Server

Αναζητήθηκε CASE

Η σύνταξη για την περίπτωση αναζήτησης

CASE 
     WHEN <Boolean_Expression_1> THEN Statement_1
     WHEN <Boolean_Expression_2> THEN Statement_2
     .
     .
     WHEN <Boolean_Expression_N> THEN Statement_N
     [ELSE Statement_Else]   
END AS [ALIAS_NAME]

Εδώ,

  • Η παράμετρος Boolean_Expression_1, … υποδηλώνει την έκφραση που θα αξιολογηθεί ως TRUE ή FALSE.
  • Οι παράμετροι Statement_1, Statement_2… υποδηλώνουν τις δηλώσεις που θα εκτελεστούν εάν το αντίστοιχο αποτέλεσμα Boolean_Expression_1, Boolean_Expression_2 είναι TRUE.
  • Με λίγα λόγια, η συνθήκη είναι Boolean_Expression_1,… και η ACTION είναι η εκτέλεση της Statement_N εάν η παραπάνω boolean_Expression_1 είναι TRUE.
  • Το ALIAS_NAME είναι προαιρετικό και είναι το ψευδώνυμο που δίνεται στο αποτέλεσμα της δήλωσης CASE. Χρησιμοποιείται κυρίως όταν χρησιμοποιούμε ΠΕΡΙΠΤΩΣΗ στην ρήτρα επιλογής.

Κανόνες για υποθέσεις που αναζητήθηκαν

  • Σε αντίθεση με την απλή περίπτωση, το Searched Case δεν περιορίζεται μόνο στον έλεγχο ισότητας, αλλά επιτρέπει την έκφραση Boolean.
  • Η έκφραση Boolean αξιολογείται, με τη σειρά που ξεκινά από την πρώτη Boolean έκφραση, δηλαδή, Boolean_expression_1. Παρακάτω είναι η προσέγγιση εκτέλεσης:
    • Εάν η Boolean_expression_1 είναι TRUE, τότε παραλείπονται περαιτέρω προτάσεις WHEN…THEN και η εκτέλεση CASE θα ΤΕΛΕΙΩΣΕΙ αμέσως.
    • Εάν η Boolean_expression_1 είναι FALSE, τότε η Boolean_expression_2 αξιολογείται ως TRUE συνθήκη. Αυτή η διαδικασία αξιολόγησης Boolean_expression θα συνεχιστεί έως ότου μία από τις Boolean_expression επιστρέψει TRUE.
    • Εάν τίποτα δεν ταιριάζει, τότε ο έλεγχος πηγαίνει στη δήλωση ELSE και το Statement_Else θα εκτελεστεί.
  • Το Like Simple Case ELSE είναι προαιρετικό και στην περίπτωση Αναζήτησης.
  • Εάν το ELSE δεν υπάρχει και κανένα από τα Boolean_expression δεν επιστρέφει TRUE, τότε θα εμφανιστεί το Null.

Κάτω διάγραμμα επεξηγούν τη ροή εκτέλεσης του Αναζητημένη υπόθεση.

Εργασία της δήλωσης υπόθεσης που αναζητήθηκε

Εργασία της δήλωσης υπόθεσης που αναζητήθηκε

Παραδείγματα

Ερώτημα 1: ΑΝΑΖΗΤΗΣΗ ΠΕΡΙΠΤΩΣΗΣ με την επιλογή ΟΧΙ ΑΛΛΟ

SELECT Tutorial_ID, Tutorial_name,
CASE 
 	WHEN Tutorial_name = 'SQL' THEN 'SQL is developed by IBM'
	WHEN Tutorial_name = 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN Tutorial_name = 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
END AS Description
FROM Guru99

Αποτέλεσμα: Παρακάτω διάγραμμα εξηγεί τη ροή εκτέλεσης του ΑΝΑΖΗΤΗΣΗ ΥΠΟΘΕΣΗ μαζί σου, ΟΧΙ ΑΛΛΟ.

Αναζητήθηκε παράδειγμα CASE στον SQL Server

Ερώτημα 2: ΑΝΑΖΗΤΗΣΗ ΠΕΡΙΠΤΩΣΗΣ με ELSE επιλογή.

SELECT Tutorial_ID, Tutorial_name,
CASE 
	WHEN Tutorial_name = 'SQL' THEN 'SQL is developed by IBM'
	WHEN Tutorial_name = 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN Tutorial_name = 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
	ELSE 'This is NO SQL language.'
END AS Description
FROM Guru99

Αποτέλεσμα: Παρακάτω διάγραμμα εξηγεί τη ροή εκτέλεσης of την ΑΝΑΖΗΤΩΜΕΝΗ ΥΠΟΘΕΣΗ μαζί σου, ΑΛΛΟΥ.

Αναζήτηση CASE στον SQL Server

Διαφορά μεταξύ της προσέγγισης εκτέλεσης: SIMPLE και SEARCH CASE.

Ας ρίξουμε μια ματιά ΑΠΛΗ ΠΕΡΙΠΤΩΣΗ παράδειγμα παρακάτω:

SELECT Tutorial_ID, Tutorial_name,
CASE Tutorial_name
	WHEN 'SQL' THEN 'SQL is developed by IBM'
	WHEN 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
	ELSE 'This is NO SQL language.'
END AS Description
FROM Guru99

Εδώ, 'Tutorial_name' είναι μέρος της έκφρασης CASE στην SQL. Επειτα 'Tutorial_name' η τιμή συγκρίνεται με το καθένα ΟΤΑΝ αξίες, π.χ. 'SQL'… μέχρι το 'Tutorial_name' να ταιριάζει με τις τιμές WHEN.

Σε αντίθεση, ΥΠΟΘΕΣΗ ΑΝΑΖΗΤΗΣΗΣ το παράδειγμα δεν έχει Έκφραση ΠΕΡΙΠΤΩΣΗΣ:

SELECT Tutorial_ID, Tutorial_name,
CASE 
 	WHEN Tutorial_name = 'SQL' THEN 'SQL is developed by IBM'
	WHEN Tutorial_name = 'PL/SQL' THEN 'PL/SQL is developed by Oracle Corporation.'
	WHEN Tutorial_name = 'MS-SQL' THEN 'MS-SQL is developed by Microsoft Corporation.'
END AS Description
FROM Guru99

Εδώ, το καθένα δήλωση WHEN έχει τα δικά του Υπό όρους Boolean έκφραση. Κάθε Boolean έκφραση δηλ. Tutorial_name = 'SQL',… αξιολογείται για ΣΩΣΤΟ ΛΑΘΟΣ μέχρι πρώτο Boolean έκφραση που αξιολογεί να ΑΛΗΘΙΝΗ.

Διαφορά μεταξύ απλής και αναζητημένης υπόθεσης

Απλή υπόθεση Αναζητημένη υπόθεση
Η λέξη-κλειδί CASE ακολουθείται αμέσως από την έκφραση CASE_Expression και πριν από τη δήλωση WHEN.

Π.χ:
ΥΠΟΘΕΣΗ
WHEN Τιμή_1 ΤΟΤΕ Δήλωση_1…

Η λέξη-κλειδί πεζών-κεφαλαίων ακολουθείται από τη δήλωση WHEN και δεν υπάρχει έκφραση μεταξύ CASE και WHEN.

Π.χ:
ΠΕΡΙΠΤΩΣΗ ΠΟΤΕ ΤΟΤΕ Δήλωση_1…

Στην απλή περίπτωση, υπάρχει VALUE για κάθε πρόταση WHEN. Αυτές οι τιμές: Value_1, Value_2… Συγκρίνονται διαδοχικά με μία CASE_Expression. Το αποτέλεσμα αξιολογείται για τη συνθήκη TRUE/FALSE για κάθε δήλωση WHEN.

Π.χ:
ΥΠΟΘΕΣΗ
WHEN Τιμή_1 ΤΟΤΕ Δήλωση_1…
WHEN Τιμή_2 ΤΟΤΕ Δήλωση_2…

Στην περίπτωση αναζήτησης, υπάρχει Boolean_Expression για κάθε πρόταση WHEN. Αυτή η Boolean_Expressions: Boolean_Expression_1, Boolean_Expression_2,… αξιολογεί τη συνθήκη TRUE/FALSE για κάθε δήλωση WHEN.

Π.χ:
ΜΕΛΕΤΕΣ ΠΕΡΙΠΤΩΣΗΣ
ΟΤΑΝ ΤΟΤΕ Δήλωση_1…
ΟΤΑΝ ΤΟΤΕ Δήλωση_2…

Η απλή υπόθεση υποστηρίζει μόνο έλεγχο ισότητας. Δηλαδή εάν CASE_Expression = VALUE_1, VALUE_2…

Π.χ:
ΠΕΡΙΠΤΩΣΗ WHEN Value_1 TEN Statement_1…Στο παραπάνω παράδειγμα, η μόνη λειτουργία που εκτελείται από το σύστημα είναι ο έλεγχος εάν Case_Expression = Τιμή_1

Με το Boolean_Expression_N, το Search Case υποστηρίζει οποιαδήποτε λειτουργία που οδηγεί σε τιμή Boolean. Περιλαμβάνει ίσο και όχι ίσο με χειριστή.

Π.χ:
ΠΕΡΙΠΤΩΣΗ ΠΟΤΕ TEN Statement_1… Στο παραπάνω παράδειγμα, η Boolean_Expression_1 μπορεί να περιέχει και τελεστή «ίσο με» και «όχι ίσο με» όπως A = B, A != B.

Ένθετη ΠΕΡΙΠΤΩΣΗ: CASE σε IF ELSE

Μπορούμε να χρησιμοποιήσουμε ΘΗΚΗ μέσα ΑΝ ΑΛΛΩΣ. Παρακάτω είναι το παράδειγμα κώδικα MS-SQL

DECLARE @Flight_Ticket int;
SET @Flight_Ticket = 190;
IF @Flight_Ticket > 400
   PRINT 'Visit Nearby Tourist Location';
ELSE 
BEGIN
    SELECT
	CASE 
	WHEN @Flight_Ticket BETWEEN 0 AND 100 THEN 'Visit Los Angeles'
	WHEN @Flight_Ticket BETWEEN 101 AND 200 THEN 'Visit New York'
	WHEN @Flight_Ticket BETWEEN 201 AND 400 THEN 'Visit Europe'
	END AS Location	
END

Στο παραπάνω παράδειγμα, το CASE είναι NESTED μέσα στη δήλωση IF…ELSE:

Πρώτον, η Δήλωση IF θα εκτελεστεί και εάν η Κατάσταση Περίπτωσης είναι Διακομιστής SQL είναι False τότε θα εκτελεστεί η δήλωση ELSE.

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

  • Το σύστημα θα εκτυπώσει "Επίσκεψη κοντινής τουριστικής τοποθεσίας" εάν τα αεροπορικά εισιτήρια είναι > 400 $
  • Το σύστημα θα εκτυπώσει "Επισκεφτείτε το Λος Άντζελες" εάν τα αεροπορικά εισιτήρια είναι Μεταξύ 0 $ ΚΑΙ 100 $
  • Το σύστημα θα εκτυπώσει "Επισκεφτείτε τη Νέα Υόρκη" εάν τα αεροπορικά εισιτήρια είναι Μεταξύ 101 $ ΚΑΙ 200 $
  • Το σύστημα θα εκτυπώσει "Επισκεφτείτε την Ευρώπη" εάν τα αεροπορικά εισιτήρια είναι Μεταξύ 201 $ ΚΑΙ 400 $

Ένθετο CASE στον SQL Server

Ένθετη θήκη: CASE μέσα σε CASE

Μπορούμε να χρησιμοποιήσουμε CASE μέσα σε CASE στην SQL. Παρακάτω είναι το παράδειγμα κώδικα MS-SQL

DECLARE @Flight_Ticket int;
SET @Flight_Ticket = 250;
SELECT
CASE 
WHEN @Flight_Ticket >= 400 THEN 'Visit Nearby Tourist Location.'
WHEN @Flight_Ticket < 400 THEN 
    	CASE 
		WHEN @Flight_Ticket BETWEEN 0 AND 100 THEN 'Visit Los Angeles'
		WHEN @Flight_Ticket BETWEEN 101 AND 200 THEN 'Visit New York'
		WHEN @Flight_Ticket BETWEEN 201 AND 400 THEN 'Visit Europe'
		END	
END AS Location

Στο παραπάνω παράδειγμα, το CASE είναι NESTED μέσα σε μια άλλη πρόταση CASE:

Το σύστημα ξεκινά με την εκτέλεση της εξωτερικής θήκης. Εάν Flight_Ticket < 400 $ τότε θα εκτελεστεί η εσωτερική CASE.

Ανάλογα με την τιμή του εισιτηρίου πτήσης, θα εμφανιστεί ένα από τα ακόλουθα αποτελέσματα:

  • Το σύστημα θα εκτυπώσει "Επίσκεψη κοντινής τουριστικής τοποθεσίας" εάν τα αεροπορικά εισιτήρια είναι > 400 $
  • Το σύστημα θα εκτυπώσει "Επισκεφτείτε το Λος Άντζελες" εάν τα αεροπορικά εισιτήρια είναι Μεταξύ 0 $ ΚΑΙ 100 $
  • Το σύστημα θα εκτυπώσει "Επισκεφτείτε τη Νέα Υόρκη" εάν τα αεροπορικά εισιτήρια είναι Μεταξύ 101 $ ΚΑΙ 200 $
  • Το σύστημα θα εκτυπώσει "Επισκεφτείτε την Ευρώπη" εάν τα αεροπορικά εισιτήρια είναι Μεταξύ 201 $ ΚΑΙ 400 $

Παράδειγμα ένθετης CASE στον SQL Server

ΠΕΡΙΠΤΩΣΗ με ΕΝΗΜΕΡΩΣΗ

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

CASE με UPDATE στον SQL Server

Θα χρησιμοποιήσουμε «GuruΠίνακας 99' σε περαιτέρω παραδείγματα

Μπορούμε να χρησιμοποιήσουμε CASE με UPDATE. Ακολουθεί το παράδειγμα κώδικα MS-SQL:

UPDATE Guru99
SET Tutorial_Name = 
	(
	CASE
	WHEN Tutorial_Name = 'SQL' THEN 'Structured Query language.'
	WHEN Tutorial_Name = 'PL/SQL' THEN 'Oracle PL/SQL'
	WHEN Tutorial_Name = 'MSSQL' THEN 'Microsoft SQL.'
	WHEN Tutorial_Name = 'Hadoop' THEN 'Apache Hadoop.'
	END
	)

Στο παραπάνω παράδειγμα, το CASE χρησιμοποιείται στη δήλωση UPDATE.

Ανάλογα με την τιμή Tutorial_Name, η στήλη Tutorial_Name θα λάβει την ενημέρωση με την τιμή TEN Statement.

  • Εάν Tutorial_Name = 'SQL' ΤΟΤΕ ενημερώστε το Tutorial_Name σε 'Structured Query Language'
  • Εάν Tutorial_Name = 'PL/SQL' ΤΟΤΕ ενημερώστε το Tutorial_Name σε 'Oracle PL/SQL'
  • Εάν Tutorial_Name = 'MSSQL' ΤΟΤΕ ενημερώστε το Tutorial_Name σε 'Microsoft SQL'
  • Εάν Tutorial_Name = 'Hadoop' ΤΟΤΕ ενημερώστε το Tutorial_Name σε 'Apache Hadoop'

CASE με UPDATE στον SQL Server

Ας κάνουμε ερωτήσεις Guru99 πίνακας για να ελέγξετε την ενημερωμένη τιμή:

CASE με UPDATE στον SQL Server

ΠΕΡΙΠΤΩΣΗ με Παραγγελία από

Μπορούμε να χρησιμοποιήσουμε CASE με Order By. Ακολουθεί το παράδειγμα κώδικα MS-SQL:

Declare @Order Int;
Set @Order = 1
Select * from Guru99 order by 
CASE 
	WHEN @Order = 1 THEN Tutorial_ID
	WHEN @Order = 2 THEN Tutorial_Name
	END
DESC

Εδώ το CASE χρησιμοποιείται με Order By.

Το @Order ορίζεται σε 1 και ως πρώτη όταν η έκφραση Boole αξιολογείται σε TRUE, το Tutorial_ID επιλέγεται για Order by Condition

CASE με Παραγγελία κατά στον SQL Server

Ενδιαφέροντα γεγονότα!

  • Το CASE μπορεί να είναι ένθετο σε άλλη CASE καθώς και σε άλλη πρόταση IF…ELSE.
  • Εκτός από το SELECT, το CASE μπορεί να χρησιμοποιηθεί με άλλο SQL ρήτρα όπως ΕΝΗΜΕΡΩΣΗ, ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ.

Περίληψη

  • Στο MS SQL, υπάρχουν δύο τύποι CASE: Απλή ΠΕΡΙΠΤΩΣΗ και Αναζήτηση ΠΕΡΙΠΤΩΣΗΣ
  • Το ELSE είναι προαιρετικό στη δήλωση CASE.

Συνοψίστε αυτήν την ανάρτηση με: