SQL Server中最好的方法是什么
SELECT
SUBSTRING('CATCH ME IF YOU CAN', 2, 10000)
-- ATCH ME IF YOU CAN
Run Code Online (Sandbox Code Playgroud)
没有上限?
使用STUFF替代(的东西(的Transact-SQL) ):
SELECT STUFF('CATCH ME IF YOU CAN',1,1,'');
Run Code Online (Sandbox Code Playgroud)
在此,STUFF将位置1处的1个字符替换为字符串''。第二个参数是开始位置,第三个参数是要替换的字符数(从该位置开始)。第四个是替换字符串。
因此,作为另一个示例,您可以执行以下操作:
SELECT STUFF('2019-07-09 11:38:00',11,1,'T');
Run Code Online (Sandbox Code Playgroud)
它将位置11的1个字符替换'T'为返回的字符,'2019-07-09T11:38:00'将上述值更改为ISO8601格式。如您所见,要替换的字符串的长度也不必与替换字符串的长度相同(实际上,第3个参数的值可以为0,这意味着不替换任何字符,并且“替换”将字符串简单地注入到现有值中)。
LEN()与变量一起使用
DECLARE @Val AS VARCHAR (MAX) = 'CATCH ME IF YOU CAN';
SELECT SUBSTRING(@Val, 2, LEN(@Val));
Run Code Online (Sandbox Code Playgroud)
或直接与LEN()
SELECT SUBSTRING('CATCH ME IF YOU CAN', 2, LEN('CATCH ME IF YOU CAN'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |