Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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_Sql Server_Substring - Fatal编程技术网

SQL Server-从位置到字符串结尾的子字符串

SQL Server-从位置到字符串结尾的子字符串,sql,sql-server,substring,Sql,Sql Server,Substring,我必须拆分一个字符串,我需要取前25个字符,然后取其他字符,这是我的代码 select SUBSTRING(field, 1, 25), SUBSTRING(field, 26, (LEN(field)-25)) from table 但我在第二个子串中得到了这个: 传递给left或substring函数的长度参数无效 这有什么不对吗?您可以使用stuff(): 问题是substring()不接受代码计算的负长度。您可以使用stuff(): 问题是substring()不接

我必须拆分一个字符串,我需要取前25个字符,然后取其他字符,这是我的代码

select  
    SUBSTRING(field, 1, 25),
    SUBSTRING(field, 26, (LEN(field)-25))
from table
但我在第二个子串中得到了这个:

传递给left或substring函数的长度参数无效

这有什么不对吗?

您可以使用
stuff()

问题是
substring()
不接受代码计算的负长度。

您可以使用
stuff()


问题是
substring()
不接受代码计算的负长度。

如果没有25个字符怎么办?然后
子字符串(field,25,xxxx)
就没有意义了-如果
25
参数大于
field
的长度,就会出现这个错误(column)-25-为什么?为什么不只是子字符串(列,26,8000)或列定义的最大值?计算长度是不必要的。但是你仍然需要确保字符串至少有26个字符长,如果没有,该怎么办。如果没有25个字符呢?然后
子字符串(field,25,xxxx)
就没有意义了-如果
25
参数大于
field
的长度,就会出现这个错误(column)-25-为什么?为什么不只是子字符串(列,26,8000)或列定义的最大值?计算长度是不必要的。但是您仍然需要确保字符串至少有26个字符长,如果没有,那么在这种情况下该怎么办。
select left(field, 25),
       stuff(field, 1, 25, '')