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