Подтвердить что ты не робот

Количество кол-во символов в столбце nvarchar

Кто-нибудь знает хороший способ подсчета символов в текстовом столбце (nvarchar) на Sql Server? Значениями могут быть текст, символы и/или номера.

До сих пор я использовал sum(datalength(column))/2, но это работает только для текста. (это метод, основанный на длине данных, и это может варьироваться от типа к другому).

4b9b3361

Ответ 1

Вы можете найти количество символов, используя системную функцию LEN. то есть.

SELECT LEN(Column) FROM TABLE

Ответ 2

Используйте функцию LEN:

Возвращает количество символов указанного строкового выражения, за исключением конечных пробелов.

Ответ 3

Не работает SELECT LEN (column_name)

Ответ 4

Использование

SELECT length(yourfield) FROM table;

Ответ 5

текст не работает с 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.

Источник

Ответ 6

Недавно у меня была аналогичная проблема, и вот что я сделал:

    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 в конце.