‘壹’ sql查询不同区间的数量
select
count(case when time>=1 and time <=2 then muid end),
count(case when time>=2.1 and time <=3 then muid end),
count(case when time>=3.1 and time <=4 then muid end)
from table
‘贰’ SQL 如何查询一个区间段的所有值
建议先根据查询条件查出对应的区间,然后对这个区间做处理。
处理可以在SQL里面,也可以在应用程序里面。
没特殊要求的话建议采用后者,直接在程序里面写一个循环即可。
如果是要用SQL的话,可以用一个临时表把需要的先放里面再取出即可.
‘叁’ sql数据库时间模糊查询 字段dt是datatime类型,我想查所有日期内,但是dt
select*from表名whereconvert(char(5),dt,114)notbetween'8:00'and'16:00'
‘肆’ SQL语句怎样查询一个范围
SQL方法完成数值区间查询
要求:根据奖金等级表的数值区间,返回奖金对应的等级。
1、链接外部数据:数据--现有链接--浏览更多,在路径中选择数据Excel文件和目标工作表,建立数据链接。
详细步骤参考前面所发的SQL相关文章。
2、编写sql语句。
2.1、使用switch函数,SQL语句为:
select 姓名,奖金,switch(奖金<200,"D级",奖金<300,"C级",奖金<500,"B级",奖金>=500,"A级") as 奖金等级 from [奖金$a1:b11]
switch函数直接判断数值,若数值小于200,返回D级;数值小于300返回C级;数值小于500,返回B级;余下的数值条件要变化为>=500返回A级而不是<=700。
2.2、使用iif函数,SQL语句为:
select 姓名,奖金,iif(奖金<200,"D级",iif(奖金<300,"C级",iif(奖金<500,"B级","A级"))) as 奖金等级 from [奖金$a1:b11]
其基本思路和switch函数相同,类似工作表函数if的嵌套。
2.3、使用betweent...and,SQ语句为:
select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 between b.最小值 and b.最大值
以戴苏明同学为例子,在SQL代码运行的时候,将戴苏明同学的奖金一一和奖金等级表中的数值进行对比,符合区间的就返回区间等级。其他同学亦然。
但是,当奖金超出最大值700的时候就会取不到该条数据。
如刘平的奖金701并不在betweent...and的区间内,返回的结果中没有刘平的数据。
2.4、使用Where比较大小,sql语句为:
select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 >=b.最小值 and a.奖金<=b.最大值
此方法原理和betweent...and一样,当奖金超过最大值700时,数据将有遗漏(刘平)。
当奖金的最大值为700的时候,以上四种方法都得出同样的结果。
当奖金最大值超过700的时候,3、4两个方法将遗漏奖金大于700的数据。
因此,可在设计奖金等级表的时候,可以将最大值700改为一个比较大的数值,使奖金再高也不会超过,则四种方位皆可。
如更改奖金等级表的最大值700为70000,这么大的一个范围,则四种方法都适用。
‘伍’ 在ACCESS中,如何用sql语句筛选出某一栏在某一数字区间的条目
--11到19
select count(某一栏) from 表名 where 某一栏> 10 and 某一栏< 20
‘陆’ sql语句判断时间区间的问题
1、首先,我们来定义一个时间字段的参数,暂且命名为Date,语句为:declare @Date datetime。
‘柒’ SQL语句选取某个区间的记录怎么编写
例如:写一个SQL语句,取出表S中第21~30记录(SQL server,以自动增长的ID作为主键,ID可能不连续)
方法一:
Select TOp10 * from S
Where ID>(Select MAX(ID) from (Select Top20 ID from S ) as S)
方法二:
select Top10 * from S where ID NOT IN(select Top20 ID from S)
(7)sql筛选dt区间扩展阅读
SQL SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SQL SELECT 语法
SELECT 列名称 FROM 表名称
以及:
SELECT * FROM 表名称
注释:SQL 语句对大小写不敏感。SELECT 等效于 select。
SQL SELECT 实例:
如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:
SELECT LastName,FirstName FROM Persons
‘捌’ SQL 查询单列不同区间值
SELECT convert(varchar(10),convert(int,Score))+"~"+convert(varchar(10),convert(int, CASE WHEN Score=ceiling(Score) THEN Score+1 ELSE ceiling(Score) END)), count(*) from TTT
GROUP BY convert(varchar(10),convert(int,Score))+"~"+convert(varchar(10),convert(int, CASE WHEN Score=ceiling(Score) THEN Score+1 ELSE ceiling(Score) END))
ORDER BY 1
注意:0~1返回0次的结果出不来。
如一定要求0~1的也出结果,你还得把需求说得更清楚一下。比如说将上述ID为3的数据改为3.2,那么4~5的也将为0而查不到,还要显示4~5为0吗?5~6、6~7呢?简而言之,要求高的话,需要说明Score的最小值和最大值。
‘玖’ sql server 分组筛选语句
useDT_WareHouse;
setnocounton;
declare@tbtable
(
idintidentity(1,1),
cnidint,
namenvarchar(30)
)
insertinto@tb(cnid,name)
select'111','张三'unionall
select'111','张三'unionall
select'22','李四'unionall
select'22','李四'unionall
select'22','王五'unionall
select'22','赵六'unionall
select'22','狗蛋'unionall
select'333','铁柱'unionall
select'333','二牛'unionall
select'333','二牛'
select
A.id,A.cnid,A.name
from@tbA
wherenotexists
(
[email protected]=B.cnidandA.name=B.nameandA.id>B.id
)
以上是执行结果。
‘拾’ SQL数据库中如何筛选某一个表中的时间字段的范围
例如:表a中的datetime字段都是‘2013-05-11 13:10:00‘这种格式的,筛选其中8:00到10:00之间的。
select * from 表a
where substring(convert(varchar,字段名,120),12,8) between '08:00:00' and '10:00:00'