SQL Server-从位置到字符串结尾的子字符串
我必须拆分一个字符串,我需要取前25个字符,然后取其他字符,这是我的代码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()不接
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, '')