Sql server mssql:操作文本(非字符串)值

Sql server mssql:操作文本(非字符串)值,sql-server,string,text,Sql Server,String,Text,我想问: len(someTextField) ltrim(someTextField) 这不起作用,因为上面的函数显然只处理字符串,而不处理文本 执行相同操作的任何替代方法?使用自SQL Server 2005以来的varcharmax not text+ 如果无法使用text或ntext,可以使用替换LEN。与之不同的是,它没有隐含的RTRIM,测量字节而不是字符,但您的选项有限 对于旧数据类型,没有等效的LTRIM 不过,您可以强制转换这些列: CREATE TABLE dbo.Type

我想问:

len(someTextField)
ltrim(someTextField)
这不起作用,因为上面的函数显然只处理字符串,而不处理文本

执行相同操作的任何替代方法?

使用自SQL Server 2005以来的varcharmax not text+

如果无法使用text或ntext,可以使用替换LEN。与之不同的是,它没有隐含的RTRIM,测量字节而不是字符,但您的选项有限

对于旧数据类型,没有等效的LTRIM

不过,您可以强制转换这些列:

CREATE TABLE dbo.Typetest (OldCol text NULL)
GO
INSERT dbo.TypeTest (OldCol) VALUES ('abcdefg')
INSERT dbo.TypeTest (OldCol) VALUES ('abcdefghijklm')
GO
SELECT LEN(CAST(OldCol AS varchar(max))), LTRIM(CAST(OldCol AS varchar(max))) FROM dbo.Typetest
GO
DROP TABLE dbo.Typetest
GO

啊,我会投。为什么这不是一个100%的解决方案?有缺点吗?@gidireich:没有缺点:但你不应该再使用文本、图像或ntext了