修剪sql server列中的子字符串

时间:2013-10-24 19:19:32

标签: sql-server string tsql

我的文字列中的数据看起来像xxxxx.x.xx 我需要将字符串放入格式为xxxxx.x的视图中(删除尾随.xx)。

我不知道该怎么做。任何帮助将不胜感激。

我想我需要从开始到第二次获得长度“。”然后离开那个长度。

我也想知道,这可以作为列表达式完成还是需要函数?

这是另一个转折点。如果char长度是可变的,例如xxxxxx.xx.xxxxxx.x.x,我将如何处理相同的问题?

3 个答案:

答案 0 :(得分:2)

你也可以试试这个:

SELECT 
    REVERSE(
        SUBSTRING(
            REVERSE(@word),
            CHARINDEX('.', REVERSE(@word))+1,
            LEN(REVERSE(@word))
                 )
            )
FROM yourTable

这是SQLFiddle

此解决方案是通用的,因此它也适用于您使用xx.xxxx.xx.xxx或任何其他数量的字母点缀的情况。

答案 1 :(得分:1)

这可以使用表达式来实现:

left(@s, charindex('.', @s, charindex('.', @s) + 1) - 1)

(其中@s是你的varchar值)

在线演示:http://www.sqlfiddle.com/#!3/d41d8/23448

答案 2 :(得分:1)

select 'xxxxx.x.xx' as original
,Replace( 'xxxxx.x.xx',Right('xxxxx.x.xx',3),'') as new