1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| --------------
START TRANSACTION
--------------
--------------
DROP DATABASE IF EXISTS `base`
--------------
--------------
CREATE DATABASE `base`
DEFAULT CHARACTER SET `latin1`
DEFAULT COLLATE `latin1_general_ci`
--------------
--------------
drop view if exists `vue`
--------------
--------------
create view `vue` as
with t1 as ( SELECT -2 as T_e
UNION ALL SELECT -4
),
t2 as ( SELECT 0 as a_i, 100 as a_s
UNION ALL SELECT 100, 1000
UNION ALL SELECT 1000, 5000
UNION ALL SELECT 5000, 20000
),
t3 as ( SELECT ROW_NUMBER() OVER(order by T_e desc, a_i) as num,
T_e, a_i, a_s
FROM t1
CROSS JOIN t2
),
t4 as ( SELECT 1 as num2, -9 as valeur
UNION ALL SELECT 2, 10
UNION ALL SELECT 3, 65
UNION ALL SELECT 4, 2
UNION ALL SELECT 5, -5
UNION ALL SELECT 6, 78
UNION ALL SELECT 7, 6
UNION ALL SELECT 8, 0
),
t5 as ( SELECT x.num,
x.T_e,
x.a_i,
x.a_s,
y.valeur
FROM t3 as x
INNER JOIN t4 as y
ON y.num2 = x.num
)
select * from t5
--------------
--------------
select * from `vue`
--------------
+-----+-----+------+-------+--------+
| num | T_e | a_i | a_s | valeur |
+-----+-----+------+-------+--------+
| 1 | -2 | 0 | 100 | -9 |
| 2 | -2 | 100 | 1000 | 10 |
| 3 | -2 | 1000 | 5000 | 65 |
| 4 | -2 | 5000 | 20000 | 2 |
| 5 | -4 | 0 | 100 | -5 |
| 6 | -4 | 100 | 1000 | 78 |
| 7 | -4 | 1000 | 5000 | 6 |
| 8 | -4 | 5000 | 20000 | 0 |
+-----+-----+------+-------+--------+
--------------
select * from `vue` where a_i<=4500 AND a_s>=4500
--------------
+-----+-----+------+------+--------+
| num | T_e | a_i | a_s | valeur |
+-----+-----+------+------+--------+
| 3 | -2 | 1000 | 5000 | 65 |
| 7 | -4 | 1000 | 5000 | 6 |
+-----+-----+------+------+--------+
--------------
COMMIT
--------------
Appuyez sur une touche pour continuer... |
Partager