mysql での if、left、および mod ステートメントの使用 (特別ボーナス Mysql の計算)

MySQL の 3 つの単純なステートメント

文法構造:

IF(条件,T1,F2)

使用法: 条件式は異なる結果を取得し、条件が true の場合は T1 の値を返し、それ以外の場合は F2 を返します。

文法構造:

Left(文字列、序数)

使用法: ビット列が N の場合、文字列の N 番目の文字を出力します。

文法構造:

Mod(求められる余り、求められる余り)

使用法: Mod(5,3) は 5%3 に相当します。

例:

例 1: (ソースリンク)

各従業員のボーナスを計算する SQL クエリを作成します。従業員の ID が奇数で、名前が「M」で始まらない場合、ボーナスは給与の 100% になります。それ以外の場合、ボーナスは 0 になり、返された結果セットは、employee_id でソートされる必要があります。

入力:
従業員テーブル:
+---------------+---------+--------+
| 従業員 ID | 名前 | 給与 |
+--- - --------+--------+----------+
| 2 | メイア | 3000 |
| 3 | マイケル | 3800 |
| 7 | アディリン | 7400 |
| 8 | ジュアン | 6100 |
| 9 | 観音 | 7700 |
+-------------+---------+--------+
出力 :
+ -------------+----------+
| 従業員 ID | ボーナス |
+-------------+------ -+
| 2 | 0 |
| 3 | 0 |
| 7 | 7400 |
| 8 | 0 |
| 9 | 7700 |
+-------------+--------+
問題-コードを解決する:

select employee_id,
if(mod(employee_id,2)<>0 and name not like 'M%',salary,0) as bonus
from employees
order by employee_id


 

おすすめ

転載: blog.csdn.net/zsl20200217/article/details/126296275