zoukankan      html  css  js  c++  java
  • SQL 问题:已知主键id 和排序条件 这条记录的上一条或下一条记录

    设本记录ID为@ID

    则上条记录为:
    SELECT TOP 1 * FROM TABLE1 WHERE 排序字段<(select
    排序字段 from table1 where id=@id) order by 排序字段 desc
    下条记录为:
    SELECT TOP 1 *
    FROM TABLE1 WHERE 排序字段>(select 排序字段 from table1 where id=@id) order by 排序字段

    ==========================
    不使用记录集是什么意思?是结果不要结果集,而要赋值给变量吗?

    有了单条记录的记录集,您还不会将它存入变量吗?格式是这样:
    则上条记录为:
    set @idpre=(
    SELECT TOP 1
    id FROM TABLE1 WHERE 排序字段<(select 排序字段 from table1 where id=@id) order by
    排序字段 desc
    )
    下条记录的ID为:
    set @idpre=(
    SELECT TOP 1 id FROM TABLE1
    WHERE 排序字段>(select 排序字段 from table1 where id=@id) order by 排序字段
    )

    =======================
    问得好!
    设排序字段依次为:FIELD1 INT,FIELD2
    VARCHAR(30)FIELD3 DATETIME
    set @idpre=(
    SELECT TOP 1 id FROM TABLE1

    WHERE
    (convert(varchar(10000000000+field1))+space(30-len(field2))+field2,convert(varchar,field3,120))

    >
    (select
    排序字段=(convert(varchar(10000000000+field1))+space(30-len(field2))+field2,convert(varchar,field3,120))

    from table1 where id=@id)
    order by 排序字段

    --关键是将排序的所有字段转换为定长的VARCHAR类型后组合到一起。
    ========================

    要求不简单,当然就没有更简单的了,其实这语句不算很长,逻辑也不是很复杂
  • 相关阅读:
    JSP/Servlet开发——第二章 JSP数据交互(二)
    JSP/Servlet开发——第一章 动态网页基础
    Java OOP——第三章 多态
    Java OOP——第二章 继承
    Java OOP——第一章 对象和封装
    Java OOP——第四章 异常
    Linux 系统启动过程
    动画链接
    js判断浏览器类型
    localStorage封装
  • 原文地址:https://www.cnblogs.com/scgw/p/2378020.html
Copyright © 2011-2022 走看看