有谁知道在 Sql Server 的文本(nvarchar)列中计算字符的好方法?那里的值可以是文本、符号和/或数字。
到目前为止,我使用过sum(datalength(column))/2
,但这仅适用于文本。(这是一种基于数据长度的方法,这可能因类型而异)。
有谁知道在 Sql Server 的文本(nvarchar)列中计算字符的好方法?那里的值可以是文本、符号和/或数字。
到目前为止,我使用过sum(datalength(column))/2
,但这仅适用于文本。(这是一种基于数据长度的方法,这可能因类型而异)。
您可以使用系统函数查找字符数LEN
。IE
SELECT LEN(Column) FROM TABLE
利用
SELECT length(yourfield) FROM table;
使用LEN
功能:
返回指定字符串表达式的字符数,不包括尾随空格。
不SELECT LEN(column_name)
工作?
text 不适用于 len 函数。
在 Microsoft SQL Server 的未来版本中,将删除 ntext、text 和 image 数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。有关详细信息,请参阅使用大值数据类型。
我最近遇到了类似的问题,这就是我所做的:
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。