【发布时间】:2019-08-27 04:08:52
【问题描述】:
我在 SQL Server 2016 中运行带有 CHARINDEX 的 SELECT 语句,以使用空格作为分隔符返回字符串中的最后一个单词。它适用于某些领域,而对于其他领域,它会去除一些字符。有人可以指出我正确的方向吗?
我已经尝试了 RIGHT、LEFT 和 REVERSE 内置函数以及 SUBSTRING 函数。
SELECT TRIM(RIGHT('XXxxx Xxxxxx x Xxxxxx Xxxxx Xxxx Xxxxxx 5 - Xxxxxx - Xxxxxx Xxxxxxx Xxxxxxxxxx Xxxxxxxxxx',CHARINDEX(' ','XXxxx Xxxxxx x Xxxxxx Xxxxx Xxxx Xxxxxx 5 - Xxxxxx - Xxxxxx Xxxxxxx Xxxxxxxxxx Xxxxxxxxxx',0)+1))
我期待最后一个词 - Xxxxxxxxxx,但对于这个特定的记录,上面的查询返回 xxxxxxx 并忽略前面的 3 个字符。对于其他一些记录,它可以工作并返回最多 8 个字符。如果指出正确的方向,我将不胜感激。
【问题讨论】:
标签: sql sql-server charindex