用sql语言,来查没有主键,也找不到能用来顺序标识的记录行,希望别改变数据表内容。比如说在前添加序列号等等。欢迎并谢谢大家的解答。

解决方案 »

  1.   

    没办法,sql的存储结构决定了
      

  2.   

    select top 1 * from (select rn =row_number() over (order by getdate()) ,* from tb)   tb_1 
    order by rn desc是不是這樣?
      

  3.   

    如果你用的是sql server 2005及以后版本的话能查,但是这个只是逻辑上的最好一条,比如:select *
    from
    (
    select *,
           count(*) over(PARTITION by 1) as record_count,  --表中的记录数
           ROW_NUMBER() over(order by @@servername) as rownum  --人工的行号
    from sys.objects
    )t
    where rownum = record_count
      

  4.   

    select top 1 * from (select rn =row_number() over (order by getdate()) ,* from tb)   tb_1 
     order by rn desc
    这个方法是能找到,但是改变了原数据库的结构,在数据库的第一列增添了一列。
      

  5.   

    有无聚集索引?有聚集索引可以通过order by 聚集索引字段 desc实现。没得你就自己想办法吧。另外,这么蛋疼的结构,谁想出来的?可以让老板炒掉他了。