如何在一条SQL语句中获取varchar[n]字段的大小?
假设我有一个 SQL 表,其中有一个名为“Remarks”的 varchar[1000] 字段。
我想编写一个 SQL 语句,该语句在执行时将返回 1000,或者将来 varchar 字段的大小可能更改为的任何值。
类似于SELECT size(Remarks) FROM mytable
。
我该怎么做?
Suppose that I have a SQL table that has a varchar[1000] field called "Remarks".
I would like to craft a single SQL statement, which when executed, will return 1000, or whatever the size of the varchar field might be changed to in the future.
Something like SELECT size(Remarks) FROM mytable
.
How do I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
特别是在 SQL Server 上:
文档
On SQL Server specifically:
Documentation
对于 SQL Server(2008 及更高版本):
COLUMNPROPERTY 返回列或参数(id、列/参数、属性)的信息。 PRECISION 属性返回列或参数的数据类型的长度。
COLUMNPROPERTY 文档
For SQL Server (2008 and above):
COLUMNPROPERTY returns information for a column or parameter (id, column/parameter, property). The PRECISION property returns the length of the data type of the column or parameter.
COLUMNPROPERTY documentation
这将在 SQL SERVER 上运行...
This will work on SQL SERVER...
我正在寻找列的总大小并点击了这篇文章,我的解决方案基于 MarcE 的。
I was looking for the TOTAL size of the column and hit this article, my solution is based off of MarcE's.
这是计算 varchar(Nn) 最大有效长度的函数:
用法:
This is a function for calculating max valid length for varchar(Nn):
Usage:
对于 t-SQL,我对 varchar 列使用以下查询(显示排序规则和 is_null 属性):
For t-SQL I use the following query for varchar columns (shows the collation and is_null properties):
对于 MS SQL Server,这将返回列长度:
For MS SQL Server this will return column length:
对于 SQL Server,我们可以使用 LEN 代替 SIZE,剩下的问题中给出的一切都很好。 LEN 返回字符数,不确定我应该称其为“眼睛友好”还是“大脑友好”:)
DATALENGTH 也可以正常工作,如其他答案中给出的那样,但它返回字节数。
这里是文档参考
For SQL Server, instead of SIZE we can use LEN rest everything given in question is fine. LEN returns number of characters, not sure I should call it eye friendly or brain friendly :)
DATALENGTH also works fine as given in other answers but it returns number of bytes.
Here is documentation reference