Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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 sql server中的子字符串函数_Sql Server_Database_Tsql - Fatal编程技术网

Sql server sql server中的子字符串函数

Sql server sql server中的子字符串函数,sql-server,database,tsql,Sql Server,Database,Tsql,我是数据库PL/SQL的初学者。我正在使用子字符串函数 @String = 'Y1223456883002' 在SQL Server中类似 SUBSTRING(@String,LEN(@String),2) 获取最后两个数字,但这里的输出仅为2。 有人能给我解释一下如何获取最后两个带零的数字吗?要获取SQL Server中字符串的最后两个字符,您应该使用 DECLARE @string varchar(10) = 'Y1223456883002' SELECT RIGHT(@stri

我是数据库PL/SQL的初学者。我正在使用子字符串函数

@String  = 'Y1223456883002' 
在SQL Server中类似

SUBSTRING(@String,LEN(@String),2) 
获取最后两个数字,但这里的输出仅为2。
有人能给我解释一下如何获取最后两个带零的数字吗?

要获取SQL Server中字符串的最后两个字符,您应该使用

DECLARE @string varchar(10) = 'Y1223456883002' 
SELECT RIGHT(@string, 2)
如果您想像您提到的那样使用子字符串函数,您应该(正如@Barry提到的)使用:

另一种方法是用空字符串代替最后2个字符之前的字符:

DECLARE @string varchar(10) = 'Y1223456883002' 
SELECT STUFF(@string, 1, LEN(@string)-2, '')

就性能而言,它们都差不多(在我的笔记本电脑上,1000万次迭代大约需要10秒)

使用子字符串(@String,LEN(@String)-1,2)。第二个参数指定开始的位置。你指定了最后一个字符。是的。RTFM。随意插入参数可能会把它们弄混。@Barry谢谢。现在它的工作,以及我想要的。现在它返回零。
DECLARE @string varchar(10) = 'Y1223456883002' 
SELECT STUFF(@string, 1, LEN(@string)-2, '')