2 she8656837 she8656837 于 2016.01.26 10:51 提问

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
Iamxiaoxiong   2016.01.26 11: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
rui888   Ds   Rxr 2016.01.26 11:09

这样看看呢。/

  SELECT  RIGHT(RTRIM(column), 3) as  col  FROM    table where    col='1'
rogeshu
rogeshu   2016.01.26 11:51

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

leaf_130
leaf_130 回复趁着年轻丶去疯狂吧: id有序即可
大约 2 年之前 回复
she8656837
she8656837 id 用的uuid
大约 2 年之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.01.26 13:16

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

she8656837
she8656837 id 是uuid
大约 2 年之前 回复
she8656837
she8656837   2016.01.26 14:16

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

写了一个这个

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!