sql-server - SQL Server 中字段的 DATALENGTH 前 50 条记录
问题描述
Azure SQL Server 2016 - 我在组合语法和从特定字段的表中获取前 50 条记录的列表时TOP
遇到问题。MAX
DATALENGTH
DATALENGTH
我需要执行的字段DATALENGTH
称为Text
. 我实际上并不希望在结果中返回该字段Text
- 我想要返回的是被调用的字段CaptureId
以及该字段TaskSourceId
中最大的 50 条记录以及数量。DATALENGTH
Text
DATALENGTH
我试过这个,但它没有工作,关于 CaptureId 的错误未包含在聚合函数或 GROUP BY 子句中。
SELECT TOP 50
CaptureId,
TaskSourceId,
MAX(DATALENGTH([Text]))
FROM
Data.Capture
有人可以帮我更正这个查询吗?
解决方案
你不需要max
。只需对记录进行排序:
select top 50
captureid, tasksourceid, datalength(text) as text_len
from data.capture
order by datalength(text) desc
这将不关心关系并返回最多 50 行。
如果您想考虑有关文本字段数据长度的关系,请使用top 50 with ties
而不是 simple top 50
。在这种情况下,它可能会返回超过 50 条记录。
推荐阅读
- python - 为什么 QTextEdit 有时会在 Ubuntu 20.04 上多次发出 textChanged?
- javascript - 如何从我的 vue.js 应用程序中打开 AutoCAD 程序?
- node.js - React JS - “npm start”第二次不起作用
- javascript - 使用 AudioWorkletProcessor 进行低延迟音频调度?
- amazon-web-services - AWS 1 个子域与多个 AWS ELB 共享
- sql - 如何在 MS-Access 中创建查询/表,在其中计算某些大写括号中的客户?
- python - 树莓派零python版本3.7.3中没有模块名称键盘
- php - 如何创建将消息发送到电子邮件地址的聊天室
- cas - 用于测试客户端代码的公共 CAS 服务器
- python - 我将如何使用 BeautifulSoup 来解析其中的文本?