如何计算访问查询中 SQL Server ntext(即备忘录)字段中的字符数?
Posted
技术标签:
【中文标题】如何计算访问查询中 SQL Server ntext(即备忘录)字段中的字符数?【英文标题】:How do I count the number of characters in SQL server ntext (i.e. memo) field in an access query? 【发布时间】:2012-04-12 18:59:21 【问题描述】:我想编写一个访问查询来计算链接的 SQL Server 表中 ntext 字段中的字符数。
在 SQL Server 中,我只使用这个命令(在访问中不起作用):
select datalength(nTextFieldName) //this command works on sql server but not in access
在访问中,我只能找到 len 命令,它不适用于 ntext 字段:
select len(nTextFieldName) // access says nText is not a valid argument to this function.
四处搜索,我发现一堆帖子说要使用 len,这给了我一个错误。
命令是什么?
【问题讨论】:
【参考方案1】:ntext
类型不适用于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.
处理此问题的最佳方法是将数据类型转换/强制转换为有效的数据类型,例如varchar(max)
/nvarchar(max)
,然后才获得LEN
。
SELECT LEN(CAST(nTextFieldName As nvarchar(max)))
【讨论】:
如何确定转换后的文本是否在转换过程中被截断? LEN(CAST(nTextFieldName As nvarchar(max))) 为我工作。 我不明白为什么转换会截断字符串。 ntext 和 nvarchar(max) 最多可容纳 2^30 - 1 个字符。来源:docs.microsoft.com/en-us/sql/t-sql/data-types/…docs.microsoft.com/en-us/sql/t-sql/data-types/…【参考方案2】:select LENGTH(nTextFieldName) from table_name;
【讨论】:
以上是关于如何计算访问查询中 SQL Server ntext(即备忘录)字段中的字符数?的主要内容,如果未能解决你的问题,请参考以下文章