J'ai une instruction SQL qui a un CASE
from SELECT
et je ne peux pas faire les choses correctement. Pouvez-vous me montrer un exemple CASE
où les cas sont les conditions et les résultats sont des cas. Par exemple:
Select xxx, yyy
case : desc case when bbb then 'blackberry';
when sss then 'samsung';
end
from (select ???? .....
où les résultats montrent
name age handphone
xxx1 yyy1 blackberry
xxx2 yyy2 blackberry
sql
sql-server
case
fadzli feizal
la source
la source
Réponses:
Le MSDN est une bonne référence pour ce type de questions concernant la syntaxe et l'utilisation. Cela provient de la page Transact SQL Reference - CASE.
http://msdn.microsoft.com/en-us/library/ms181765.aspx
Un autre bon site que vous voudrez peut-être consulter si vous utilisez SQL Server est SQL Server Central . Cela a une grande variété de ressources disponibles pour n'importe quel domaine de SQL Server que vous souhaitez apprendre.
la source
Je pense que cela pourrait vous être utile.
Utiliser une
SELECT
instruction avec uneCASE
expression simpleDans une
SELECT
instruction, uneCASE
expression simple permet uniquement un contrôle d'égalité; aucune autre comparaison n'est faite. L'exemple suivant utilise l'CASE
expression pour modifier l'affichage des catégories de lignes de produits afin de les rendre plus compréhensibles.Utilisation d'une
SELECT
instruction avec uneCASE
expression recherchéeDans une
SELECT
instruction, l'CASE
expression recherchée permet de remplacer les valeurs dans l'ensemble de résultats en fonction des valeurs de comparaison. L'exemple suivant affiche le prix catalogue sous forme de commentaire textuel en fonction de la fourchette de prix d'un produit.Utilisation
CASE
dans uneORDER BY
clauseLes exemples suivants utilisent l'
CASE
expression dans uneORDER BY
clause pour déterminer l'ordre de tri des lignes en fonction d'une valeur de colonne donnée. Dans le premier exemple, la valeur de la colonne SalariedFlag de la table HumanResources.Employee est évaluée. Les employés dont le SalariedFlag est défini sur 1 sont renvoyés dans l'ordre par BusinessEntityID dans l'ordre décroissant. Les employés dont le SalariedFlag est défini sur 0 sont renvoyés dans l'ordre par BusinessEntityID dans l'ordre croissant. Dans le deuxième exemple, le jeu de résultats est trié par la colonne TerritoryName lorsque la colonne CountryRegionName est égale à «United States» et par CountryRegionName pour toutes les autres lignes.Utilisation
CASE
dans uneUPDATE
déclarationL'exemple suivant utilise l'
CASE
expression dans uneUPDATE
instruction pour déterminer la valeur qui est définie pour la colonne VacationHours pour les employés avec SalariedFlag défini sur 0. Lorsque la soustraction de 10 heures à VacationHours donne une valeur négative, VacationHours est augmenté de 40 heures; sinon, VacationHours est augmenté de 20 heures. LaOUTPUT
clause est utilisée pour afficher les valeurs avant et après les vacances.Utilisation
CASE
dans uneHAVING
clauseL'exemple suivant utilise l'
CASE
expression dans uneHAVING
clause pour restreindre les lignes renvoyées par l'SELECT
instruction. L'instruction renvoie le taux horaire maximal pour chaque titre de poste dans la table HumanResources.Employee. LaHAVING
clause limite les titres à ceux qui sont détenus par des hommes avec un taux de rémunération maximum supérieur à 40 dollars ou par des femmes avec un taux de rémunération maximum supérieur à 42 dollars.Pour plus de détails sur la description de ces exemples, visitez la source .
Visitez également ici et ici pour quelques exemples avec de grands détails.
la source
vous pouvez aussi utiliser:
la source