she8656837
2016-01-26 02:51 阅读 1.5k

sql 每隔2条数据取出1条数据

表名 user 需要查询出的字段 name 有数据自带的序号

现在要实现 每隔2条查询出1条数据

大神 你在哪里

select aa.* from (select ROW_NUMBER() over(order by t.pk_id)rn,t.* from 表名 t )aa where right(convert(nvarchar(5),rn),1)='1'

我自己写了一个 但是老是提示 right 标识无效

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • Iamxiaoxiong 写代码的大熊 2016-01-26 03:03

    select aa.* from (select ROW_NUMBER() over(order by t.pk_id)rn,t.* from 表名 t )aa where right(convert(rn,char(5)),1)='1'

    convert函数可以使用的类型是有限的,这个类型可以是以下值其中的一个:
    二进制,同带binary前缀的效果 : BINARY

    字符型,可带参数 : CHAR()

    日期 : DATE

    时间: TIME

    日期时间型 : DATETIME

    浮点数 : DECIMAL

    整数 : SIGNED

    无符号整数 : UNSIGNED

    点赞 评论 复制链接分享
  • rui888 兔子托尼啊 2016-01-26 03:09

    这样看看呢。/

      SELECT  RIGHT(RTRIM(column), 3) as  col  FROM    table where    col='1'
    
    点赞 评论 复制链接分享
  • rogeshu rogeshu 2016-01-26 03:51

    使用where进行筛选就好,比如查询数据中有id列自增,可这样获取: ..... where (id % 3) = 0

    点赞 评论 复制链接分享
  • Royal_lr Royal_lr 2016-01-26 05:16

    可以,,用id对3取余就行了

    点赞 评论 复制链接分享
  • she8656837 趁着年轻丶去疯狂吧 2016-01-26 06:16

    select aa.* from (select ROW_NUMBER() over(order by t.字段)rn,t.* from 表名 t )aa where not rn/5 like '%.%'

    写了一个这个

    点赞 评论 复制链接分享

相关推荐