A kifejezési eset (transact-sql)

Egy egyszerű CASE formátumú kifejezés. A bemeneti_kifejezés argumentum bármely érvényes kifejezés.

Egy egyszerű kifejezés, amely összehasonlítja az input_expression argumentumot, ha egyszerű CASE formátumot használ. A when_expression argumentum bármely érvényes kifejezés. A bemeneti_kifejezés és minden olyan kifejezésnek, amelyeknek a kifejezésnek azonosnak vagy implicit módon kell hivatkoznia egymásra.

A kifejezés akkor jelenik meg, ha a bemeneti_expresszió és az when_expression kifejezés TRUE vagy a Boolean_expression kifejezést összehasonlítja TRUE értékkel. Az eredmény kifejezés kifejezése bármilyen érvényes kifejezés.

Ez a kifejezés akkor jelenik meg, ha az összehasonlítási műveletek egyike TRUE. Ha ez az argumentum elmarad, és az összehasonlítási műveletek egyikének sem a TRUE eredménye, akkor a CASE függvény NULL értéket ad vissza. A else_result_expression argumentum bármely érvényes kifejezés. Az else_result_expression argumentum adattípusai és az eredmény_expressziós argumentumok bármelyike ​​azonos vagy implicit módon hivatkozni kell egymásra.

Ez egy logikai kifejezés, amelyet a CASE függvény keresési formátumának felhasználásával lehet elérni. A Boolean_expresszió argumentum bármely érvényes logikai kifejezés.

A kifejezés első sorrendjével a kifejezés eredmény_expresszió és az opcionális else_result_expression kifejezést adja vissza. További információ: Adat típus prioritás (Transact-SQL).

Visszatérési értékek

Egy egyszerű CASE kifejezés:

Egy egyszerű CASE kifejezés összeveti az első kifejezést a kifejezéshez minden WHEN záradékban. Ha ezek a kifejezések egyenértékűek, akkor a THEN klauzula kifejezést visszaküldi.

Csak egyenlőségi ellenőrzés engedélyezett.

Értékeli a bemeneti_expresszió kifejezést. Ezután a megadott sorrendben összehasonlítja a kifejezés bemeneti_kifejezése és az when_expression értékeit minden egyes WHEN záradékkal.

Az expression_expression kifejezést adja vissza. amely megfelel az első WHEN záradéknak, amelyhez az összehasonlító művelet input_expression = when_expression értéke TRUE értékű.

Ha az input_expression = when_expression műveletek értéke TRUE, akkor az SQL Server Database Engine visszaadja a else_result_expression kifejezést. ha az ELSE záradék meg van adva, vagy NULL, ha az ELSE záradék nincs megadva.

A CASE keresési kifejezés:

Számolja ki a Boolean_expression kifejezést minden egyes WHERE clause-ban a megadott sorrendben.

Az expression_expression kifejezést adja vissza. amely megfelel az első WHEN záradéknak, amelyhez a Boolean_expression kifejezés TRUE.

Ha a Boolean_expression értékét TRUE értékre nem értékeljük, az adatbázismotor visszatér a else_result_expression kifejezésbe. ha az ELSE záradék van megadva, vagy NULL, ha az ELSE záradék nincs megadva.

Az SQL Server lehetővé teszi a CASE kifejezésekben legfeljebb 10 fóliaszintet.

A CASE utasítás nem használható a Transact-SQL utasítások, az utasításblokkok, a felhasználó által definiált függvények és a tárolt eljárások végrehajtásának végrehajtására. A végrehajtható vezérlési módok listáját lásd a Menetellenőrzési nyelv (Transact-SQL) című témakörben.

A CASE utasítás egymás után értékeli a feltételeket és leállítja az első futási feltétel észlelését. Bizonyos esetekben a kifejezést kiértékeljük, mielőtt a CASE utasítás a kifejezés eredményeit bevitelként megkapja. Az ilyen kifejezések kiszámításakor hibák lehetségesek. Először a CASE utasítás WHEN argumentumaiban használt összesített kifejezést értékeljük, majd a CASE utasítás végrehajtásra kerül. Például a következő lekérdezés a MAX statisztikai kifejezés értékének generálásakor nullával osztási hibát eredményez. Ez még a CASE kifejezés értékelése előtt is előfordul.

Kapcsolódó cikkek