如何在sql db2中的空格后获取字符串的最后一个字符

Posted

技术标签:

【中文标题】如何在sql db2中的空格后获取字符串的最后一个字符【英文标题】:How to get the last character of string after a space in sql db2 【发布时间】: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

【问题讨论】:

【参考方案1】:

您可以结合使用RIGHTLEFT 函数来实现此目的。 case 表达式首先提取最右边的 2 个值,然后检查最左边的值是否为空格,以确定最后一个字符之前以空格结尾的字符串。如果满足此条件,则使用正确的函数返回此字符,否则为 null。

SELECT
    CASE 
        WHEN LEFT(RIGHT(value,2),1)=' ' THEN RIGHT(value,1)
        ELSE NULL
    END as Substr
FROM
    MyTable

Working Demo DB Fiddle

让我知道这是否适合你

【讨论】:

以上是关于如何在sql db2中的空格后获取字符串的最后一个字符的主要内容,如果未能解决你的问题,请参考以下文章

查找DB2中varchar列中最后一次出现的空格('')

如何在 DB2 中获取每个月的当前最后一天

如何在 DB2 Sql 中的上一列下方获取下一列的值

在 SQL 请求中,如何查找字符串最后一部分中包含数字的所有记录(最后一个空格之后)

如何通过SQL从IBM db2中的查询中获取列名

如何使用 DB2 sql 检查不在两个表中的记录以获取另一个第三个表中的日期?