当前位置:首页 » 编程语言 » sql区间
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql区间

发布时间: 2022-02-24 05:25:41

sql日期区间查询

--你想要的是不是这样?
--适用于SQL Server

declare @date1 datetime, @date2 datetime
set @date1 = '20140101'
set @date2 = '20140131'

select @date1 date1, @date2 date2,

sum(case when 预付日期 >=@date1 and 预付日期<=@date2 then 预付金额 else 0 end) 预付金额,
sum(case when 实付日期 >=@date1 and 实付日期<=@date2 then 实付金额 else 0 end) 实付金额,
sum(case when 入库日期 >=@date1 and 入库日期<=@date2 then 入库数量 else 0 end) 入库数量,
sum(case when 发票日期 >=@date1 and 发票日期<=@date2 then 发票金额 else 0 end) 发票金额

from table1

㈡ 怎样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方法完成数值区间查询
要求:根据奖金等级表的数值区间,返回奖金对应的等级。

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,这么大的一个范围,则四种方法都适用。

㈣ 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)

(4)sql区间扩展阅读

SQL SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

SQL SELECT 语法

SELECT 列名称 FROM 表名称

以及:

SELECT * FROM 表名称

注释:SQL 语句对大小写不敏感。SELECT 等效于 select。

SQL SELECT 实例:

如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:

SELECT LastName,FirstName FROM Persons

㈤ SQL 如何查询一个区间段的所有值

建议先根据查询条件查出对应的区间,然后对这个区间做处理。
处理可以在SQL里面,也可以在应用程序里面。
没特殊要求的话建议采用后者,直接在程序里面写一个循环即可。
如果是要用SQL的话,可以用一个临时表把需要的先放里面再取出即可.

㈥ Oracle SQL语句查询值区间范围数据

where1=1and
IN_AVG_VALUEBETWEEN'30'AND'50'
or
IN_MAX_VALUEBETWEEN'30'AND'50'
or
IN_MIN_VALUEBETWEEN'30'AND'50'

㈦ SQL中查询日期区间内的数据

select * from 借阅信息表 where 编号 between #2006-6-9# and #2008-9-9#
或者
select * from 借阅信息表 where 编号 between "2006-6-9" and "2008-9-9"

㈧ 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怎么取区间

如果是oracle的话,可以用for in语句
for v_num in 1..10 loop
--execute some sql
end loop;

㈩ sql按区间分组汇总,SQL高手指教啊!

select a.a1,a.a2,
sum(case when c.b1='01' then c.b4 end) 一月份,
sum(case when c.b1='01' then c.b4 end) 二月份,
sum(case when c.b1='01' then c.b4 end) 三月份,
sum(case when c.b1='01' then c.b4 end) 四月份,
sum(case when c.b1='01' then c.b4 end) 五月份,
sum(case when c.b1='01' then c.b4 end) 六月份,
sum(case when c.b1='01' then c.b4 end) 七月份,
sum(case when c.b1='01' then c.b4 end) 八月份,
sum(case when c.b1='01' then c.b4 end) 九月份,
sum(case when c.b1='01' then c.b4 end) 十月份,
sum(case when c.b1='01' then c.b4 end) 十一月份,
sum(case when c.b1='01' then c.b4 end) 十二月份 from
a,
(select substring(b1,1,6) as b1,b2,b3,sum(b4) as b4 from b group by substring(b1,1,6),b2,b3) as c
where a.a1=b.b2
group by a.a1,a.a2

oracle的话把substring改成substr就行