Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 从SQL变量末尾修剪数字_Sql Server 2005_Tsql_Trim - Fatal编程技术网

Sql server 2005 从SQL变量末尾修剪数字

Sql server 2005 从SQL变量末尾修剪数字,sql-server-2005,tsql,trim,Sql Server 2005,Tsql,Trim,我有一个名为@FileName的SQL变量,我需要从末尾修剪数字。下面是我的字符串目前的外观示例,以及我需要它们的外观示例: lorem-1至lorem 乱数假文> Fo-123-BAR-1234 Foo123-Bar (注释< /强>:中间保留数) 123-lorem至123-lorem(注意:无数字和结尾处的“-”无变化) 这可能吗 谢谢。是的,有可能。请看一下子字符串和ASCII TSQL函数。是的,这是可能的。请看一下子字符串和ASCII TSQL函数。可以使用PATINDEX和

我有一个名为
@FileName
的SQL变量,我需要从末尾修剪数字。下面是我的字符串目前的外观示例,以及我需要它们的外观示例:

lorem-1
lorem

乱数假文>

<代码> Fo-123-BAR-1234 <代码> Foo123-Bar (<强>注释< /强>:中间保留数)

123-lorem
123-lorem
注意:无数字和结尾处的“-”无变化)

这可能吗


谢谢。

是的,有可能。请看一下子字符串和ASCII TSQL函数。

是的,这是可能的。请看一下子字符串和ASCII TSQL函数。

可以使用
PATINDEX
REVERSE
。试试这个:

SELECT LEFT(@FileName,LEN(@FileName)-patindex('%[^0-9]%',REVERSE(@FileName))+1)

可以使用
PATINDEX
REVERSE
。试试这个:

SELECT LEFT(@FileName,LEN(@FileName)-patindex('%[^0-9]%',REVERSE(@FileName))+1)

我知道SUBSTRING函数,并且在过去多次使用过它。然而,我如何知道我想要的子字符串的长度呢?一种方法是使用子字符串以相反的顺序逐个查看字符。遇到数字时,跳过它们。ASCII可用于确定字符是否为数字,代码比大小写或if语句少一点。不过PATINDEX看起来是个更好的选择。我知道SUBSTRING函数,并且在过去多次使用过它。然而,我如何知道我想要的子字符串的长度呢?一种方法是使用子字符串以相反的顺序逐个查看字符。遇到数字时,跳过它们。ASCII可用于确定字符是否为数字,代码比大小写或if语句少一点。帕丁德斯看起来是个更好的选择。干杯!然而,当我输入'test-123'时,它返回'test-'。是否有返回“test”的方法?好的,为了实现这一点,您需要在PATINDEX中添加所有要跳过的字符。例如,要去掉最后一个数字和前面的“-”,需要在PATINDEX的第一个参数中添加“-”。在这种情况下,应该是这样一句话:选择LEFT(@FileName,LEN(@FileName)-patindex(“%[^0-9-]%”),REVERSE(@FileName))+1)为此干杯!然而,当我输入'test-123'时,它返回'test-'。是否有返回“test”的方法?好的,为了实现这一点,您需要在PATINDEX中添加所有要跳过的字符。例如,要去掉最后一个数字和前面的“-”,需要在PATINDEX的第一个参数中添加“-”。在这种情况下,应该是这样一句话:选择LEFT(@FileName,LEN(@FileName)-patindex(“%[^0-9-]%”,REVERSE(@FileName))+1)