mssql: манипулирование текстовыми (не строковыми) значениями - PullRequest
0 голосов
/ 02 августа 2011

Я хочу спросить:

len(someTextField)
ltrim(someTextField)

, который не работает, так как вышеприведенные функции, очевидно, работают только со строкой, но не с текстом

Есть ли альтернативные способы выполнить то же самое?

1 Ответ

0 голосов
/ 02 августа 2011

Использовать varchar(max), а не text, начиная с SQL Server 2005 +

Если вы застряли с текстом или текстом, вы можете использовать DATALENGTH для замены 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...