CASE-lauseke ja sisäkkäinen tapaus SQL Serverissä: T-SQL-esimerkki

⚡ Älykäs yhteenveto

CASE on SQL Serverin ehdollinen lauseke, joka palauttaa arvon ensimmäisen tosiksi arvioidun ehdon perusteella. Se tarjoaa yksinkertaisia ​​ja haettuja muotoja sekä sisäkkäisiä IF…ELSE-, UPDATE- ja ORDER BY -lausekkeiden sisällä.

  • 🧭 Ehdollinen arvo: CASE-lauseke palauttaa arvon, joka riippuu siitä, mikä WHEN-ehto arvioidaan ensimmäisenä tosiksi.
  • 1️⃣ Yksinkertainen tapaus: Yksinkertainen CASE vertaa yhtä lauseketta arvoluetteloon ja suorittaa yhtäsuuruustarkistuksen jokaiselle WHEN-arvolle.
  • 🔎 Haettu tapaus: Haettu CASE-funktio laskee erillisen totuusarvolausekkeen jokaiselle WHEN-funktiolle ja tukee sekä alueita että epäyhtälöoperaattoreita.
  • MUUTEN on valinnainen: Kun WHEN-lauseke ei vastaa toisiaan ja ELSE-lauseke jätetään pois, CASE-lauseke palauttaa NULL-arvon.
  • 🪆 Pesiminen: CASE-lausekkeen voi sisäkkäin sijoittaa toisen CASE-lausekkeen sisään ja IF…ELSE-lausekkeen sisään monitasologiikassa.
  • 🔧 SELECTin lisäksi: SELECT-lauseen lisäksi CASE toimii UPDATE- ja ORDER BY -lauseiden kanssa ehdollisten päivitysten ja lajittelun ohjaamiseksi.

CASE-lauseke ja sisäkkäinen CASE SQL Serverissä T-SQL-esimerkeillä

Yleiskatsaus Case tosielämään!

Jälleen kerran, tosielämässä suoritamme erilaisia ​​toimia eri olosuhteiden lopputuloksesta riippuen. Tarkastellaanpa asiaa tarkemmin alla olevaa esimerkkiä:

  • Jos lentoliput ovat alle 100 dollaria, vierailen Los Angelesissa.
  • Jos lentoliput maksavat 100–200 dollaria, niin menen New Yorkiin.
  • Jos lentoliput maksavat 200–400 dollaria, niin matkustan Eurooppaan.
  • Muuten käyn mieluummin lähellä olevassa turistikohteessa.

Tarkastellaanpa ehdon ja toiminnan luokittelua erikseen yllä olevasta esimerkistä:

Ehdot – Lentoliput Toiminnot suoritetaan vain, jos ehto on TOSI
Less yli 100 dollaria Vieraile Los Angelesissa
Välillä $ 100 dollaria 200 Vieraile New Yorkissa
Välillä $ 200 dollaria 400 Vieraile Euroopassa
Mikään yllä olevista ehdoista ei täyttynyt Läheinen turistikohde

Yllä olevassa esimerkissä voimme nähdä, että eri ehtojen lopputulos ohjaa erillistä toimintoa. Esimerkiksi vierailija suorittaa New Yorkin-vierailun vain, jos lentolippu maksaa 100–200 dollaria. Vastaavasti MS SQL CASE-lauseke tarjoaa myös mahdollisuuden suorittaa erilaisia ​​T-SQL-lauseita eri ehtojen tulosten perusteella.

Mikä on CASE-lauseke SQL Serverissä?

CASE-selostus sisään SQL Server on jatke TAI MUUTEN lauseke. Toisin kuin IF…ELSE, jossa sallitaan enintään yksi ehto, CASE antaa käyttäjän soveltaa useita ehtoja eri toimintojen suorittamiseksi MS SQL:ssä. Se palauttaa käyttäjän määrittämään ehtoon liittyvän vastaavan arvon.

Opetellaan käyttämään CASE-kieltä SQL ja sen käsite seuraavissa osioissa. MS SQL:ssä on kahdenlaisia ​​CASE-käskyjä:

  • Yksinkertainen CASE
  • Etsittiin CASE

Yksinkertainen CASE

Yksinkertaisen tapauksen syntaksi

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]

Tässä:

  • Parametri Case_Expression ilmaisee lausekkeen, jota lopulta verrataan Arvo_1:een, Arvo_2:een ja niin edelleen.
  • Parametrit Lauseke_1, Lauseke_2… osoittavat lauseet, jotka suoritetaan, jos Tapauslauseke = Arvo_1, Tapauslauseke = Arvo_2 ja niin edelleen.
  • Lyhyesti sanottuna ehto on, onko Case_Expression = Value_N, ja toiminto on Statement_N:n suorittaminen, jos yllä oleva tulos on TRUE.
  • ALIAS_NAME on valinnainen ja se on SQL Serverin CASE-lausekkeen tulokselle annettu alias-nimi. Sitä käytetään enimmäkseen silloin, kun käytämme CASE-lauseketta SQL Serverin SELECT-lausekkeessa.

Yksinkertaisen tapauksen säännöt

  • Yksinkertainen tapaus (Yksinkertainen Case) sallii Case_Expression-lausekkeen yhtäsuuruustarkistuksen vain arvoilla Value_1 ja Value_N.
  • Case_Expression-lauseketta verrataan arvoon järjestyksessä alkaen ensimmäisestä arvosta, eli Arvo_1. Suoritustapa on seuraava:
  • Jos Case_Expression vastaa arvoa_1, muut WHEN…THEN-käskyt ohitetaan ja CASE-suoritus PÄÄTTYY välittömästi.
  • Jos Case_Expression ei vastaa Arvoa_1, Case_Expressiota verrataan Arvoon_2 vastaavuuden selvittämiseksi. Tämä Case_Expressionin ja arvon vertailuprosessi jatkuu, kunnes Case_Expression löytää vastaavan arvon Arvon_1, Arvon_2 ja niin edelleen joukosta.
  • Jos mikään ei täsmää, ohjaus siirtyy ELSE-lausekkeeseen ja Statement_Else suoritetaan.
  • ELSE on valinnainen.
  • Jos ELSE-arvoa ei ole ja Case_Expression ei vastaa mitään arvoista, näytetään NULL.

Alla oleva kaavio havainnollistaa yksinkertaisen tapauksen suorituskulkua:

Vuokaavio, joka näyttää, miten yksinkertainen CASE laskee jokaisen WHEN-arvon järjestyksessä

Esimerkit

Oletetaan, että meillä on taulukko nimeltä 'Guru99' kahdella sarakkeella, Tutorial_ID ja Tutorial_name, ja neljällä rivillä, kuten alla on esitetty. Käytämme tätä 'Guru99' pöytä seuraavissa esimerkeissä.

Näyte Guru99-taulukko, jossa on Tutorial_ID- ja Tutorial_name-sarakkeet ja neljä riviä

Kysymys 1: YKSINKERTAINEN TAPAUS EI MUUTA -vaihtoehdolla

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

Tulos: Alla oleva kaavio selittää SIMPLE CASE -menetelmän suoritusvirran ilman muuta.

Yksinkertaisen CASE-laskennan tulos ilman ELSE-laskua, joka osoittaa a Description jokaiselle Tutorial_name-nimelle

Kysely 2: YKSINKERTAINEN TAPAUS MUUTEN-optiolla

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

Tulos: Alla oleva kaavio selittää SIMPLE CASE -operaation suoritusvirran ELSE-laskennan avulla.

Yksinkertaisen CASE-operaation tulos ELSE-lausekkeen kanssa, joka palauttaa oletustekstin vastaamattomille riveille

Etsittiin CASE

Haetun tapauksen syntaksi

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]

Tässä:

  • Parametri Boolean_Expression_1… ilmaisee lausekkeen, jonka arvoksi arvioidaan TOSI tai EPÄTOSI.
  • Parametrit Lauseke_1, Lauseke_2… osoittavat lauseet, jotka suoritetaan, jos vastaava Boolean_Expression_1- ja Boolean_Expression_2-tulos on TOSI.
  • Lyhyesti sanottuna ehto on Boolean_Expression_1… ja toiminto on lausekkeen_N suoritus, jos yllä oleva Boolean_Expression_1 on TOSI.
  • ALIAS_NAME on valinnainen ja se on CASE-lauseen tulokselle annettu alias-nimi. Sitä käytetään enimmäkseen silloin, kun käytämme CASE-lauseketta SELECT-lausekkeessa.

Etsityn tapauksen säännöt

  • Toisin kuin yksinkertainen tapaus, etsitty tapaus ei rajoitu pelkästään yhtäsuuruustarkistukseen, vaan se sallii myös totuusarvolausekkeen.
  • Totuusarvolauseke lasketaan järjestyksessä alkaen ensimmäisestä totuusarvolausekkeesta, eli Totuusarvolauseke_1. Suoritustapa on seuraava:
  • Jos Boolean_Expression_1 on TRUE, niin muut WHEN…THEN-lausekkeet ohitetaan ja CASE-suoritus PÄÄTTYY välittömästi.
  • Jos Boolean_lauseke_1 on EPÄTOSI, Boolean_lauseke_2 arvioidaan TOSI-ehdon osalta. Tämä Boolean-lausekkeen arviointiprosessi jatkuu, kunnes jokin Boolean-lausekkeista palauttaa TOSI-arvon.
  • Jos mikään ei täsmää, ohjaus siirtyy ELSE-lausekkeeseen ja Statement_Else suoritetaan.
  • Kuten yksinkertainen tapaus, myös etsitty tapaus on valinnainen.
  • Jos ELSE-lauseketta ei ole eikä mikään totuusarvolauseke palauta TOSI-arvoa, näytetään NULL.

Alla oleva kaavio havainnollistaa haetun tapauksen suorituskulkua:

Vuokaavio, joka näyttää, miten haettu tapaus laskee jokaisen totuuslausekkeen järjestyksessä

Esimerkit

Kysely 1: HAETTU TAPAUS EI MUUTA -vaihtoehdolla

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

Tulos: Alla oleva kaavio selittää SEARCHED CASE -funktion suorituskulun ilman muuta.

Haetun tapauksen tulos ilman ELSE-arvoa, joka vastaa kutakin Tutorial_name-arvoa Descriptioni

Kysely 2: HAETTU TAPAUS MUUTEN-optiolla

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

Tulos: Alla oleva kaavio selittää SEARCHED CASE -funktion suorituskulun ELSE-funktion kanssa.

Haetun CASE-lausekkeen tulos ELSE-lausekkeella, palauttaa oletustekstin muille kuin SQL-kielille

Suoritustavan välinen ero: SIMPLE ja SEARCH CASE

Katsotaanpa alla olevaa YKSINKERTAISTA TAPAUSTA:

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

Tässä 'Tutorial_name' on osa SQL:n CASE-lauseketta. Sitten 'Tutorial_name'-arvoa verrataan kaikkiin WHEN-arvoihin, eli 'SQL'… kunnes 'Tutorial_name' vastaa WHEN-arvoa.

Päinvastoin, SEARCH CASE -esimerkissä ei ole CASE-lauseketta:

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

Tässä jokaisella WHEN-lausekkeella on oma ehdollinen totuuslauseke. Jokaista totuuslauseketta, eli Tutorial_name = 'SQL'…, arvioidaan TOSI/EPÄTOSI-arvon suhteen, kunnes ensimmäinen totuuslauseke antaa tulokseksi TOSI.

Yksinkertaisen ja haetun tapauksen välinen ero

Yksinkertainen kotelo Haettu tapaus
CASE-avainsanaa seuraa välittömästi CASE_Expression ja se tulee ennen WHEN-lauseketta.

Esim:
CASE
WHEN Arvo_1 THEN Lauseke_1…

CASE-avainsanaa seuraa WHEN-lauseke, eikä CASE- ja WHEN-lausekkeiden välissä ole lauseketta.

Esim:
TAPAUS KUN SITTEN Lause_1…

Yksinkertaisessa tapauksessa jokaiselle WHEN-lausekkeelle on olemassa VALUE. Näitä arvoja (Arvo_1, Arvo_2…) verrataan peräkkäin yhteen CASE-lausekkeeseen. Tulos arvioidaan kunkin WHEN-lausekkeen TRUE/FALSE-ehdon osalta.

Esim:
CASE
WHEN Arvo_1 THEN Lauseke_1…
WHEN Arvo_2 THEN Lauseke_2…

Haettavassa tapauksessa jokaiselle WHEN-lausekkeelle on olemassa Boole-lauseke. Nämä Boole-lausekkeet (Boolean_lauseke_1, Boolean_lauseke_2…) arvioivat kunkin WHEN-lausekkeen TOSI/EPÄTOSI-ehdon.

Esim:
CASE
KUN SIIN lausunto_1…
KUN SIIN lausunto_2…

Yksinkertainen tapaus (Yksinkertainen Case) tukee vain yhtäsuuruustarkistusta, eli onko CASE_Expression = VALUE_1, VALUE_2…

Esim:
TAPAUS KUN Arvo_1 NIIN Lause_1…
Yllä olevassa esimerkissä järjestelmän ainoa suorittama toiminto on tarkistaa, onko Case_Expression = Value_1.

Boolean_Expression_N-muuttujalla etsitty tapaus tukee kaikkia operaatioita, jotka tuottavat totuusarvon. Se sisältää yhtäsuuri kuin- ja erisuuri kuin -operaattorit.

Esim:
TAPAUS KUN SITTEN Lause_1…
Yllä olevassa esimerkissä Boolean_Expression_1 voi sisältää sekä 'yhtä suuri kuin'- että 'ei yhtä suuri kuin' -operaattorit, kuten A = B, A != B.

Sisäkkäinen CASE: CASE kohdassa IF ELSE

Voimme käyttää CASE-operaattoria IF…ELSE-lausekkeen sisällä. Esittelemme muuttuja lentolipulle ja sen arvolle haarautuvalle toimipisteelle. Alla on esimerkki MS-SQL-koodista:

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

Yllä olevassa esimerkissä CASE on sisäkkäin IF…ELSE-lausekkeen sisällä. Ensin suoritetaan IF-lauseke, ja jos SQL Serverin CASE-ehto on False, suoritetaan ELSE-lauseke. ELSE-osa sisältää sisäkkäisen CASE-lausekkeen SQL:ssä. Lentolipun arvosta riippuen näytetään yksi seuraavista tuloksista:

  • Järjestelmä tulostaa tekstin 'Käy lähellä olevassa turistikohteessa', jos lentoliput maksavat yli 400 dollaria.
  • Järjestelmä tulostaa "Visit Los Angeles", jos lentoliput ovat 0–100 dollarin välillä.
  • Järjestelmä tulostaa "Visit New York", jos lentoliput ovat 101–200 dollarin välillä.
  • Järjestelmä tulostaa "Visit Europe", jos lentoliput ovat 201–400 dollarin välillä.

Alla oleva tulos näyttää sijainnin, joka palautetaan, kun sisäkkäinen CASE-käsky suoritetaan ELSE-haaran sisällä:

IF…ELSE-lausekkeen sisällä olevan CASE-lausekkeen tulos, joka tulostaa tiketin käyntisijainnin

Sisäkkäinen CASE: CASE CASE:n sisällä

Voimme käyttää CASE-käskyä toisen CASE-käskyn sisällä SQL:ssä. Alla on esimerkki MS-SQL-koodista:

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

Yllä olevassa esimerkissä CASE on sisäkkäin toisen CASE-lausekkeen sisällä. Järjestelmä suorittaa ensin ulomman CASE-lausekkeen; jos Flight_Ticket < $400, sisempi CASE suoritetaan. Palautettu sijainti noudattaa samoja lippualueita kuin edellisessä esimerkissä, joten 250 dollarin lippu sijoittuu $201–$400 välille ja palauttaa 'Visit Europe'.

Alla oleva tulos näyttää sisäisen CASE-funktion palauttaman sijainnin 250 dollarin lipulle:

CASE-tapahtuman sisäkkäisen CASE-tapahtuman tulos, joka palauttaa Visit Europen 250-lipulle

TAPAUS PÄIVITYKSEN kanssa

Oletetaan jälleen, että meillä on 'Guru99' taulukko, jossa on kaksi saraketta ja neljä riviä, kuten alla olevassa kuvassa:

Guru99-taulukko ennen CASE-päivitystä, jossa näkyvät alkuperäiset Tutorial_Name-arvot

Voimme käyttää CASEa UPDATE:n kanssa. Alla on esimerkki MS-SQL-koodista:

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
	)

Yllä olevassa esimerkissä UPDATE-lausekkeessa käytetään CASE-metodia. Tutorial_Name-arvosta riippuen Tutorial_Name-sarake päivittyy THEN-lausekkeen arvolla:

  • Jos Tutorial_Name = 'SQL', päivitä Tutorial_Name muotoon 'Structured Query language'.
  • Jos Tutorial_Name = 'PL/SQL', päivitä Tutorial_Name arvoon 'Oracle PL/SQL.
  • Jos Tutorial_Name = 'MSSQL', päivitä Tutorial_Name arvoon 'Microsoft SQL.
  • Jos Tutorial_Name = 'Hadoop', päivitä Tutorial_Name arvoksi 'Apache Hadoop'.

Lausekkeen suorittaminen päivittää vastaavat rivit alla olevan mukaisesti:

CASE UPDATE -lausekkeen suorituksen tulos kohdassa Guru99-taulukko

Kysytäänpä asiaa 'Guru99' taulukko päivitettyjen arvojen tarkistamiseksi:

Guru99-taulukko CASE-päivityksen jälkeen, jossa näkyvät uudet Tutorial_Name-arvot

TAPAUS tilauksella

Voimme käyttää CASE-lauseketta ORDER BY -lausekkeen kanssa. Alla on esimerkki MS-SQL-koodista:

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

Tässä käytetään CASE-lauseketta ORDER BY -lausekkeen kanssa. @Order asetetaan arvoon 1, ja koska ensimmäinen WHEN-totuusarvolauseke antaa tulokseksi TRUE, ORDER BY -ehdoksi valitaan Tutorial_ID. Tulos näkyy alla:

ORDER BY -funktion tulos, jossa on CASE-lauseke lajittelee Guru99 taulukko Tutorial_ID:n mukaan

Mielenkiintoisia seikkoja!

  • CASE-lausekkeen voi sisäkkäin sijoittaa toisen CASE-lausekkeen sisään sekä IF…ELSE-lausekkeen sisään.
  • SELECTin lisäksi CASE-lauseita voidaan käyttää muiden SQL-lauseiden, kuten UPDATE:n ja ORDER BY:n, kanssa.

UKK

IIF() on lyhenne sanoista CASE-lauseke, jossa on kaksi lopputulosta: se palauttaa yhden arvon, kun ehto on tosi, ja toisen, kun ehto on epätosi. Täysi CASE-lauseke on joustavampi ja voi testata useita WHEN-ehtoja yhdessä lausekkeessa.

Kyllä. Koska CASE palauttaa arvon, se voi esiintyä SELECT-luettelossa, WHERE-lauseessa, HAVING-lauseessa ja GROUP BY -lausekkeessa. WHERE-lausekkeessa CASE-lausekkeen avulla voit käyttää erilaisia ​​suodatuslogiikoita muiden sarakearvojen perusteella.

Kyllä. CASE-lausekkeen sijoittaminen SUM()-, COUNT()- tai funktioiden sisään AVG() suorittaa ehdollisen yhdistämisen, laskemalla yhteen tai laskemalla vain ne rivit, jotka vastaavat kutakin WHEN-ehtoa. Tätä tekniikkaa käytetään usein pivot-tyyppisten yhteenvetoraporttien luomiseen.

COALESCE ja ISNULL palauttavat listasta vain ensimmäisen ei-NULL-arvon. CASE-lauseke on laajempi: se arvioi mielivaltaisia ​​​​Totuusarvo-ehtoja tai arvojen vastaavuuksia ja palauttaa ensimmäisen tosi-haaran tuloksen.

CASE-lauseke palauttaa yhden tietotyypin. SQL Server määrittää sen jokaisen THEN- ja ELSE-tuloksen tietotyyppien prioriteetista, joten kaikkien haarojen tulisi palauttaa yhteensopivia tyyppejä muunnosvirheiden välttämiseksi.

Kyllä. CASE-lauseke voi esiintyä näkymän SELECT-lausekkeessa ja missä tahansa tallennetun proseduurin, funktion tai liipaisimen sisällä. Sama lausekesyntaksi toimii kaikissa näissä objekteissa.

Kyllä. GitHub Copilot voi luonnoskielisestä kehotteesta laatia yksinkertaisia ​​ja haettuja CASE-lausekkeita, mukaan lukien sisäkkäisiä CASE- ja CASE-lausekkeita UPDATE-lausekkeen sisällä. Tarkista aina WHEN-ehdot, haarautumisjärjestys ja ELSE-käsittely ennen kyselyn suorittamista.

Tekoäly ja koneoppimisen avustajat kääntävät selkokieliset säännöt yksinkertaisiksi tai haetuiksi CASE-lausekkeiksi, ehdottavat puuttuvia WHEN-haaroja ja merkitsevät päällekkäisyyksiäping tai saavuttamattomissa olosuhteissa. Kehittäjä tarkistaa jokaisen ehdotuksen oikeellisuuden ennen sen käyttöönottoa.

Tiivistä tämä viesti seuraavasti: