0
votes

Oracle SQL: concaténation - expression manquante

J'utilise la table Employees pour pratiquer ce qui suit:

Je voudrais afficher une colonne avec une déclaration disant

select 
    Salary,
    'This is my new Salary after 10% increase :- ' || Salary + 10%, 
From 
    Employees;

Voici le script que j'ai utilisé mais cela n'a pas fonctionné

This is my New salary after 10% increase :- and salary + 10% 


3 commentaires

"... ça n'a pas marché" n'aide pas beaucoup. À l'avenir, veuillez inclure les messages d'erreur que vous recevez dans le corps de la question. Merci.


ORA-00936: expression manquante 00936. 00000 - "expression manquante" * Cause: * Action: Erreur à la ligne: 34 Colonne: 1


voici l'erreur exacte


3 Réponses :


0
votes

Huh, c'est ce que vous ne pouvez que souhaiter (je veux dire, inventez votre propre syntaxe). Aurait dû être par exemple

SQL> select sal,
  2    'This is my new salary after 10% increase: ' || sal * 1.1 as result
  3  from emp
  4  where empno = 7369;

       SAL RESULT
---------- -------------------------------------------------------------------
      1000 This is my new salary after 10% increase: 1100

SQL>


5 commentaires

comment avez-vous trouvé 1.1?


Je suis également confus sur ce qui suit: Donc, pour appliquer votre solution à mon exemple, Sal = Salaire, emp = Employés, mais qu'est-ce que: empno = 7369?


1,1 est 1 + 10% - donc multiplier une valeur par 1,1 produit le résultat «valeur + 10 pour cent». Si vous avez besoin de revoir cela, vous pouvez envisager de suivre cette leçon de la Khan Academy


dois-je avoir «où» dans mon script? Je souhaite que l'augmentation s'applique à toutes les lignes. Peut-être que je me trompe mais je ne vois pas de raison d'utiliser «Où»


@AnouarSeljouki Non, where cause n'est pas requise.



0
votes

Veuillez essayer ceci:

select 
Salary,
'This is my new Salary after 10% increase :- ' || Salary * 1.1 NEW_SAL
From Employees;

Sortie: 2600 Voici mon nouveau salaire après une augmentation de 10%: - 2860


2 commentaires

il est revenu avec une erreur "Expression manquante" qu'est-ce que NEW_SAL?


NEW_SAL est un alias. Vous pouvez mettre n'importe quel nom à la place. Remplacez-le par: AS RESULT ou tout autre nom de colonne.



0
votes

Je pense que vous devriez pouvoir utiliser val + ses 10%, donc 110% du val. De plus, vous ne pouvez pas utiliser 110% (vous seriez obligé de le lancer, etc.), il est donc préférable d'utiliser 1.1 du val.

SELECT 
   sal AS Salary,
   'This is my new salary after 10% increase: ' || sal * 1.1 AS 'New Salary'
 FROM emp;

Donc, pour tous les employés, vous devriez voir leur salaire actuel et 110% du salaire.


0 commentaires