回答編集履歴

1

調整

2022/07/26 10:44

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -10,3 +10,26 @@
10
10
  select * from tbl
11
11
  order by (表示価格='定価')*定価+(表示価格='割引')*割引価格 desc
12
12
  ```
13
+
14
+ # 調整
15
+ 予め生成列を設定しておくという手もあります
16
+ ```SQL
17
+ create table tbl(
18
+ id int primary key,
19
+ 商品 varchar(10),
20
+ 定価 int,
21
+ 割引価格 int,
22
+ 表示価格 enum('定価','割引'),
23
+ 価格 int as ((表示価格='定価')*定価+(表示価格='割引')*割引価格 )
24
+ );
25
+
26
+ insert into tbl(id,商品,定価,割引価格,表示価格) values
27
+ (1,'A','15000','9000','定価'),
28
+ (2,'B','12000','10000','割引'),
29
+ (3,'C','11000','5000','定価'),
30
+ (4,'D','9000','8000','割引');
31
+
32
+ select * from tbl
33
+ order by 価格 desc;
34
+ ```
35
+