【发布时间】:2021-05-26 20:28:44
【问题描述】:
我有一个表,其中包含一个包含级别列表的列。此列的数据类型为字符串。我正在尝试将级别的值作为整数获取,以便为我提供级别低于特定数字的人员列表。
我试过运行这个:
SELECT ukey, game_progress
FROM point_review.vw_ft_level_progress a
INNER JOIN point_review.vw_dim_level_progress b on a.game_progress_key = b.game_progress_key
where ukey = 2111222 AND game_progression_type = 'Level'
and (CAST(REGEXP_REPLACE(game_progress, 'LEVEL ', '') as INTEGER)) < 15
但是,我不断收到一条错误消息:格式或数据包含错误字符。
这是在 Teradata 中
表A
| Column 1 | Column 2 |
|---|---|
| Joey | Level 2 |
| Rachel | Level 4 |
| Ross | Level 30 |
| Pheobe | Level 2 |
| Monica | Level 3 |
| Chandler | Level 20 |
RESULT 应该只有:Joey、Rachel、Phoebe 和 Monica,因为他们的等级低于 15。
////
| Column 1 | Column 2 |
|---|---|
| Joey | Level 2 |
| Rachel | Level 4 |
| Pheobe | Level 2 |
| Monica | Level 3 |
【问题讨论】:
-
你真正使用的是哪个数据库
-
重复我的评论从一个到一个答案。如果这个数据库是你自己设计的,为什么要把关卡存储为字符串?将其存储为数字,瞧!如果您需要在某处显示“Level x”,只需在需要时构建该字符串。