2017-06-28 2 views
1

J'essaie d'utiliser différentes expressions algébriques (+, -, *, /) avec l'instruction CASE, mais j'ai des problèmes.Utilisation de l'algèbre dans SQL avec l'instruction CASE

Fondamentalement, la syntaxe est que, si la monnaie est GBp (peu p signifie pence) Je veux qu'il soit multiplié par 100 pour qu'il devienne GBP (à savoir pence en livres)

Voici ma requête. Je pense qu'il me manque quelque chose de simple!


select Currency, FXrate 
case 
    when Currency = 'GBp' 
    then FXrate = FXrate * 100 
    end 
from FXdatabase 
+0

ce qui est l'erreur que vous obtenez, au lieu de = u n'essayez d'utiliser comme opérateur? –

+1

Les données d'échantillon et les résultats désirés aident vraiment. –

+0

Pouvez-vous fournir la syntaxe que vous avez déjà faite? –

Répondre

2

On peut supposer que vous voulez quelque chose comme ceci:

select Currency, 
     (case when Currency = 'GBp' then FXrate * 100 else FXrate 
     end) as FXrate 
from FXdatabase; 
+1

J'ai posté presque la même réponse (sauf la partie 'else'), et parce que je suis le deuxième, j'ai supprimé le mien et upvoted ceci. –

+1

Bonjour Gordan et merci pour votre réponse rapide! J'ai mis à jour ma requête (en gros copier et coller la vôtre) et j'obtiens l'erreur suivante: "Syntaxe incorrecte near '='." Ai-je besoin d'une autre expression quelque part? –

+2

Vous voulez perdre le 'FXrate =' de l'intérieur de l'instruction case. –