Ответ 1
Вы можете найти количество символов, используя системную функцию LEN
.
то есть.
SELECT LEN(Column) FROM TABLE
Кто-нибудь знает хороший способ подсчета символов в текстовом столбце (nvarchar) на Sql Server? Значениями могут быть текст, символы и/или номера.
До сих пор я использовал sum(datalength(column))/2
, но это работает только для текста. (это метод, основанный на длине данных, и это может варьироваться от типа к другому).
Вы можете найти количество символов, используя системную функцию LEN
.
то есть.
SELECT LEN(Column) FROM TABLE
Используйте функцию LEN
:
Возвращает количество символов указанного строкового выражения, за исключением конечных пробелов.
Не работает SELECT LEN (column_name)
Использование
SELECT length(yourfield) FROM table;
текст не работает с len-функцией.
ntext, text, and image data types will be removed in a future version of Microsoft SQL
Server. Avoid using these data types in new development work, and plan to modify applications
that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead. For more information, see Using Large-Value Data Types.
Недавно у меня была аналогичная проблема, и вот что я сделал:
SELECT
columnname as 'Original_Value',
LEN(LTRIM(columnname)) as 'Orig_Val_Char_Count',
N'['+columnname+']' as 'UnicodeStr_Value',
LEN(N'['+columnname+']')-2 as 'True_Char_Count'
FROM mytable
Первые два столбца смотрят на исходное значение и подсчитывают символы (минус ведущие/конечные пробелы).
Мне нужно было сравнить это с истинным количеством символов, поэтому я использовал вторую функцию LEN. Он устанавливает значение столбца в строку, заставляет эту строку в Unicode, а затем подсчитывает символы.
Используя скобки, вы гарантируете, что любые начальные или конечные пробелы также считаются символами; конечно, вы не хотите считать сами скобки, поэтому вы должны вычесть 2 в конце.