-1

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

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

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

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

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

4

3 回答 3

2

你也可以试试这个:

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

这是一个SQLFiddle

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

于 2013-10-24T19:26:03.843 回答
1

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

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

(其中 @s 是您的 varchar 值)

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

于 2013-10-24T19:24:14.803 回答
1
select 'xxxxx.x.xx' as original
,Replace( 'xxxxx.x.xx',Right('xxxxx.x.xx',3),'') as new
于 2013-10-24T19:30:24.643 回答