嵌套 when 与 replace_strict
简单
23-polars-only Polars 专属
whenreplace-strictconditionalmapping
给每个订单打两个标签。
status_label:按映射表转换 status:
| status |
status_label |
paid |
completed |
pending |
open |
其他任何值(包括 refunded、cancelled、表里没列出的值、大小写不同的写法)以及 null |
closed |
daypart:按下单时间 order_ts 的小时数:
| 小时 |
daypart |
| 0–5 |
night |
| 6–11 |
morning |
| 12–17 |
afternoon |
| 18–23 |
evening |
即 06:00:00 属于 morning,05:59:59 属于 night。
考点:多分支条件用一条 when/then 链完成;值映射用“严格映射 + 默认值”,不要逐行判断。判题只看结果。
输入
orders(order_id, customer_id, order_ts, status, channel)
输出
列为 order_id, status_label, daypart,每个订单一行,行顺序不限。
输入表 (case base,共 2 个 case:base、edge)
期望输出 (case base,行顺序不限)
| # | order_idInt64 | status_labelString | daypartString |
| 1 |
1001 |
completed |
evening |
| 2 |
1002 |
completed |
afternoon |
| 3 |
1003 |
closed |
afternoon |
| 4 |
1004 |
completed |
morning |
| 5 |
1005 |
completed |
morning |
| 6 |
1006 |
completed |
night |
| 7 |
1007 |
closed |
night |
| 8 |
1008 |
completed |
evening |
| 9 |
1009 |
completed |
night |
| 10 |
1010 |
completed |
night |
| 11 |
1011 |
closed |
night |
| 12 |
1012 |
completed |
morning |
| 13 |
1013 |
closed |
night |
| 14 |
1014 |
completed |
night |
| 15 |
1015 |
closed |
evening |
| 16 |
1016 |
closed |
night |
| 17 |
1017 |
open |
night |
| 18 |
1018 |
completed |
afternoon |
| 19 |
1019 |
completed |
afternoon |
| 20 |
1020 |
closed |
morning |
| 21 |
1021 |
closed |
afternoon |
| 22 |
1022 |
closed |
morning |
| 23 |
1023 |
closed |
night |
| 24 |
1024 |
completed |
evening |
| 25 |
1025 |
closed |
morning |
| 26 |
1026 |
completed |
morning |
| 27 |
1027 |
completed |
morning |
| 28 |
1028 |
completed |
evening |
| 29 |
1029 |
completed |
afternoon |
| 30 |
1030 |
completed |
afternoon |
| 31 |
1031 |
completed |
morning |
| 32 |
1032 |
completed |
afternoon |
| 33 |
1033 |
completed |
afternoon |
| 34 |
1034 |
completed |
morning |
| 35 |
1035 |
closed |
evening |
| 36 |
1036 |
closed |
night |
| 37 |
1037 |
open |
evening |
| 38 |
1038 |
completed |
morning |
| 39 |
1039 |
completed |
morning |
| 40 |
1040 |
closed |
afternoon |
| 41 |
1041 |
completed |
afternoon |
| 42 |
1042 |
closed |
afternoon |
| 43 |
1043 |
completed |
evening |
| 44 |
1044 |
completed |
evening |
| 45 |
1045 |
closed |
morning |
| 46 |
1046 |
completed |
night |
| 47 |
1047 |
completed |
morning |
| 48 |
1048 |
completed |
night |
| 49 |
1049 |
completed |
evening |
| 50 |
1050 |
closed |
afternoon |
显示前 50 行,共 200 行
参考答案 · 嵌套 when 与 replace_strict