代码之家  ›  专栏  ›  技术社区  ›  Stpete111

SQL Server中按字段的数据长度列出的前50条记录

  •  0
  • Stpete111  · 技术社区  · 8 年前

    Azure SQL Server 2016-我在组合语法方面遇到问题 TOP MAX DATALENGTH 从表中获取前50条记录的列表 一个特定的领域。

    我需要的领域 打开被调用 Text . 我 不要 你真的想要 结果中返回的字段-我想要返回的是调用 CaptureId TaskSourceId 从50个最大的 以及 数据长度 数量。

    我尝试了这个方法,但是没有成功,错误是CaptureId没有包含在聚合函数或groupby子句中。

    SELECT TOP 50 
        CaptureId, 
        TaskSourceId, 
        MAX(DATALENGTH([Text]))
    FROM 
        Data.Capture
    

    有人能帮我纠正这个问题吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Kamil Gosciminski    8 年前

    你不需要 max . 把记录整理一下:

    select top 50 
      captureid, tasksourceid, datalength(text) as text_len
    from data.capture
    order by datalength(text) desc
    

    如果要考虑与文本字段数据长度相关的关系,请使用 top 50 with ties 而不是简单的 top 50 . 在这种情况下,它可能返回50多条记录。

    推荐文章