【问题标题】:What is the return type of COUNT() in t-sql?t-sql 中 COUNT() 的返回类型是什么?
【发布时间】:2019-03-19 12:45:06
【问题描述】:

我正在创建一些文档,我需要在其中指定应从存储过程返回的数据类型。

我正在使用的示例 sproc 正在返回一个聚合列 - 例如使用 COUNT();

DECLARE @mytable TABLE (Id BIGINT, [Description] nvarchar(max), GroupId INT)

INSERT INTO @MyTable VALUES (1, 'Value 1.1', 1)
INSERT INTO @MyTable VALUES (2, 'Value 1.2', 1)
INSERT INTO @MyTable VALUES (3, 'Value 1.3', 1)
INSERT INTO @MyTable VALUES (4, 'Value 2.1', 2)
INSERT INTO @MyTable VALUES (5, 'Value 2.2', 2)
INSERT INTO @MyTable VALUES (6, 'Value 2.3', 2)

SELECT GroupId, Count(Id) as 'Count'
FROM @mytable
GROUP BY GroupId

COUNT() 的返回类型是什么?

【问题讨论】:

  • 你检查documentation了吗?它确实告诉你。
  • 当文档没有为您提供帮助时,SQL_VARIANT_PROPERTY(<expression>, 'BaseType') 可以在运行时告诉您任何 T-SQL 表达式的类型。还有sys.sp_describe_first_result_set
  • 就像 Jeroen 已经提到的,试试这个SELECT GroupId, Count(Id) as 'Count', SQL_VARIANT_PROPERTY(Count(Id), 'BaseType')
  • 为什么要问这个问题?您是否遇到问题或意外行为?
  • @MarkCooper 在这种情况下,首先要查看文档。

标签: sql-server tsql


【解决方案1】:

您可以将箭头指向田野。

无论如何,它显然返回一个int值。

【讨论】:

  • 感谢您抽出宝贵时间回复,但根据 @larnu 在 cmets 中提供的文档链接,返回类型为 bigint。但是,我有兴趣跟进“字段上的箭头”-您能详细说明一下吗?您指的是哪个领域,哪个应用程序?谢谢:-)
  • 谢谢,看来 SSMS 工具提示的结果与文档不同:S
  • @MarkCooper:它没有。文档清楚地说COUNT() 返回INTCOUNT_BIG() 返回BIGINT
  • @JeroenMostert 确实如此! #skimReadingFail
猜你喜欢
  • 2016-08-25
  • 1970-01-01
  • 2012-05-29
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 2014-11-07
相关资源
最近更新 更多