【发布时间】:2021-08-30 16:13:05
【问题描述】:
假设我有这些值
| Value |
|---|
| MPP ref |
| MPP ref MPP-V_ACC0000002-02 B |
| MPP ref X |
| MPP ref MPP-V_ACC0000001-01 E |
我试图在空格之后获取字符串的最后一个字符
输出应该是:
| Substr |
|---|
| B |
| X |
| E |
我的查询:
select RIGHT(trim(value ), 1) as Substr from MyTable
【问题讨论】:
假设我有这些值
| Value |
|---|
| MPP ref |
| MPP ref MPP-V_ACC0000002-02 B |
| MPP ref X |
| MPP ref MPP-V_ACC0000001-01 E |
我试图在空格之后获取字符串的最后一个字符
输出应该是:
| Substr |
|---|
| B |
| X |
| E |
我的查询:
select RIGHT(trim(value ), 1) as Substr from MyTable
【问题讨论】:
您可以结合使用RIGHT 和LEFT 函数来实现此目的。 case 表达式首先提取最右边的 2 个值,然后检查最左边的值是否为空格,以确定最后一个字符之前以空格结尾的字符串。如果满足此条件,则使用正确的函数返回此字符,否则为 null。
SELECT
CASE
WHEN LEFT(RIGHT(value,2),1)=' ' THEN RIGHT(value,1)
ELSE NULL
END as Substr
FROM
MyTable
让我知道这是否适合你
【讨论】: