Select语句比较条件查询

合集下载

sql choose语句

sql choose语句

sql choose语句SQL语言中的Choose语句是一种非常常用的语句,它可以根据条件来选择不同的结果。

在本文中,我们将介绍Choose语句的一些常见用法,以及如何使用它来实现一些常见的查询操作。

1. 基本用法Choose语句的基本语法如下:Choose [条件1] Then [结果1] [条件2] Then [结果2] [条件3] Then [结果3] … [Else [默认结果]]其中,条件1、条件2、条件3等表示不同的条件,而结果1、结果2、结果3等则表示对应条件下的结果。

如果所有条件都不满足,则返回默认结果。

例如,以下语句将根据不同的成绩范围返回不同的等级:Choose Score >= 90 Then 'A' Score >= 80 Then 'B' Score >= 70 Then 'C' Else 'D'2. 嵌套Choose语句Choose语句可以嵌套使用,以实现更复杂的逻辑。

例如,以下语句将根据不同的性别和年龄范围返回不同的结果:Choose Gender = 'Male' Then Choose Age >= 18 Then '成年男性' Else'未成年男性' Else Choose Age >= 18 Then '成年女性' Else '未成年女性'3. Choose语句与聚合函数的结合使用Choose语句可以与聚合函数结合使用,以实现更复杂的查询操作。

例如,以下语句将根据不同的成绩范围返回不同的统计结果:Choose Score >= 90 Then Count(*) Score >= 80 Then Count(*) Score >= 70 Then Count(*) Else 0 End4. Choose语句与子查询的结合使用Choose语句可以与子查询结合使用,以实现更复杂的查询操作。

第10讲 SELECT 查询

第10讲 SELECT 查询

查询命令
2.选择表中的行
------在WHERE子句中规定查询条件
例: 列出所有教授的信息。 SELECT * FROM T WHERE Ttitle='教授'; 例:列出在“D01”系工作的所有教师的信息。 SELECT * FROM T WHERE Dnum='D01';
例:列出月工资在1800元和2400元之间的教师 信息。 SELECT * FROM T WHERE Tsalary BETWEEN 1800 AND 2400;
第十讲
SQL的数据操纵功能

SQL的DDL是用来生成、修改、删除数据库结构的, 它并不涉及数据。 数据库的数据操作由数据操纵语言DML来完成, 主要包括SELECT、INSERT、DELETE和UPDATE等4 个语句,即通过它们实现查询和更新(查、插、 删、改)。

查询的基本语句
SQL中的核心是数据库查询语句,它的一般格式是: SELECT <目标列> FROM <表或视图名> [WHERE <条件表达式>] [GROUP BY <列名> [HAVING <条件>]] [ORDER BY <列名> [ASC/DESC]];
例:计算SC表中学号为S030101的学生所选修课程的总成绩
例:计算SC表中学号为S030101的学生所选修课程的总成绩
SELECT SUM(Score) FROM SC WHERE Snum=‘S030101’
AVG 函数
语法: AVG(表达式) 说明:该函数只能对数值类型的字段进行计算。
例1:计算SC表中学号为S030101的学生所选修课程的平均分。 SELECT AVG(Score) FROM SC; 例2:计算T表中所有女教师的平均工资。

oracle查询表语句

oracle查询表语句

oracle查询表语句查询所有数据:SELECT * FROM 表名;查询指定列数据:SELECT 列名1, 列名2, 列名3 FROM 表名;带条件查询:SELECT 列名1, 列名2 FROM 表名 WHERE 条件;排序查询:SELECT 列名1, 列名2 FROM 表名 ORDER BY 列名ASC/DESC;聚合查询:SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名;连接查询:SELECT 表1.列名, 表2.列名 FROM 表1 JOIN 表2 ON 表1.关联列 = 表2.关联列;子查询:SELECT 列名 FROM 表名 WHERE 列名 IN (SELECT 列名FROM 表名 WHERE 条件);复杂查询:SELECT 列名 FROM 表名 WHERE 条件 UNION SELECT 列名FROM 表名 WHERE 条件;其他:- 查询结果去重:SELECT DISTINCT 列名 FROM 表名;- 限制查询结果行数:SELECT * FROM 表名 LIMIT num;- 分页查询:SELECT * FROM 表名 LIMIT num OFFSET offset;- 对查询结果取别名:SELECT 列名 AS 别名 FROM 表名;- 对查询结果进行计数:SELECT COUNT(*) FROM 表名;- 对查询结果进行求和、平均值、最大值、最小值等计算:SELECT SUM(列名) FROM 表名;SELECT AVG(列名) FROM 表名;SELECT MAX(列名) FROM 表名;SELECT MIN(列名) FROM 表名;注意:其中"表名"需要替换为实际表的名称,"列名"需要替换为实际列的名称,"条件"需要替换为实际查询条件。

SELECT完整语法

SELECT完整语法

SQL语句一、数据查询SELECT语句的完整语法为:SELECT要查询的字段FROM 说明数据来自那些表[WHERE…] 说明查询条件(筛选语句)[GROUP BY…] 用于对查询结果进行分组,可以利用它进行分组汇总[HAVING…] 必须跟随group by使用,它用来限定分组必须满足的条件[ORDER BY…] 用来对查询结果进行排序into table/dbf 表名Into arrayInto cursorto file 文本文件名说明:用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。

1 FROM子句FROM子句指定了SELECT语句中字段的来源。

FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或由INNER JOIN、LEFT JOIN 或RIGHT JOIN 得到的复合结果。

如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。

例:下列SQL语句返回所有有成绩同学的记录SELECT Xs.xh, Xs.xm, Xs.xb, Xs.xdh, Cj.kcdh, Cj.cj;FROM sjk!xs INNER JOIN sjk!cj ;ON Xs.xh = Cj.xhSELECT xs.xh,xs.xm,cj.kcdh,cj.cj FROM xs,cj;WHERE xs.xh=cj.xh(select xh from cj;Where cj>=60)2 ALL、DISTINCT、DISTINCTROW、TOP谓词(1) ALL 返回满足SQL语句条件的所有记录。

如果没有指明这个谓词,默认为ALL。

例:SELECT ALL xh,xm,xb;From xs(2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。

(3) DISTINCTROW 如果有重复的记录,只返回一个(4) TOP显示查询头尾若干记录。

SQL语句查询指定时间内的数据

SQL语句查询指定时间内的数据

SQL语句查询指定时间内的数据SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言。

当我们需要从数据库中检索特定时间范围内的数据时,可以使用SQL查询语句来实现。

本文将介绍如何使用SQL语句查询指定时间范围内的数据。

一、介绍在数据分析和报表生成的过程中,经常需要从数据库中提取指定时间范围内的数据。

SQL语句提供了多种查询方法,可以根据日期或时间条件过滤数据。

下面将介绍几种常用的方法来查询指定时间内的数据。

二、基本SQL语句1. SELECT语句SELECT语句是SQL中用于查询数据的基本语句,可以用于从数据库中选择指定时间范围内的数据。

```sqlSELECT * FROM table_name WHERE date_column BETWEEN start_date AND end_date;```以上SQL语句中,table_name是数据库表的名称,date_column是包含日期值的列名,start_date和end_date是指定的时间范围。

该语句将返回在指定时间范围内的所有数据。

2. 条件查询除了使用BETWEEN关键字来指定时间范围外,还可以使用其他条件操作符来进行查询。

```sqlSELECT * FROM table_name WHERE date_column > start_date AND date_column < end_date;```上述SQL语句中,date_column列的值必须大于start_date且小于end_date。

使用大于号(>)和小于号(<)可以对时间进行更精确的筛选。

3. 格式化日期如果输入的时间范围是以字符串的形式提供的,需要将其转换为日期格式,以便与数据库中存储的日期进行比较。

```sqlSELECT * FROM table_name WHERE date_column BETWEEN CONVERT(datetime, start_date) AND CONVERT(datetime, end_date);```上述SQL语句中,CONVERT函数用于将字符串转换为日期类型。

select case when用法

select case when用法

select case when用法
`select case` 是一种 SQL 语句中的语法,用于根据条件选择查询结果的特定部分。

它通常用于条件查询和分组查询中,允许您根据特定条件对结果进行分类。

以下是一个简单的示例,演示了如何使用 `select case` 语句来选择订单的一部分:
```
SELECT
o.order_id,
o.order_date,
o.order_total,
CASE
WHEN o.order_total >= 100 THEN "超过 100 元"
WHEN o.order_total <= 50 THEN "低于 50 元"
ELSE "未知" END AS order_status
FROM
orders o
```
在上面的示例中,我们使用 `select case` 语句来选择订单的状态。

在 `case` 块中,我们比较订单总金额和阈值,并根据结果选择状态。

如果总金额超过 100 元,则状态为“超过 100 元”;如果总金额低于 50 元,则状态为“低于 50 元”;否则状态为“未知”。

使用 `select case` 语句时,您需要将所有可能的结果组织成一组条件,以便在查询结果中只显示符合条件的部分。

select查询语句

select查询语句

SELECT查询语句精华一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。

它们分别说明所查询列、查询的表或视图、以及搜索条件等。

例如,下面的语句查询testtable表中姓名为"张三"的nickname 字段和email字段。

SELECT nickname,emailFROM testtableWHERE name='张三'(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

1、选择所有列例如,下面语句显示testtable表中所有列的数据:SELECT *FROM testtable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。

例如:SELECT nickname,emailFROM testtable3、更改列标题在选择列表中,可重新指定列标题。

定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:SELECT 昵称=nickname,电子邮件=emailFROM testtable4、删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。

使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。

5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。

例如:SELECT TOP 2 *FROM testtableSELECT TOP 20 PERCENT *FROM testtable(二) FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。

常用_select_语句汇总教学总结

常用_select_语句汇总教学总结

常用_s e l e c t_语句汇总常用SELECT语句汇总一、单表查询(一)按照条件查询相关记录Select 字段1,字段2……字段N from 表 where 条件含义:从表中根据where 条件查询记录,每条记录显示的字段按照字段1、字段2….字段N的设置显示注:select语句中的标点符号及运算符必须使用英文半角字符。

例1:从凭证库中查询2004年1月31日的凭证,每条凭证只显示凭证日期、凭证号、科目名称、借方金额、贷方金额、会计月份 6个字段Select 凭证日期,凭证号,科目名称,借方金额,贷方金额,会计月份From 凭证库 where 凭证日期=’2004-1-31’例2:根据业务_个人基本情况表,找出缴存状态为”正常”的记录,查出的记录只显示姓名、身份证号、单位账号及个人账号 4个字段Select 个人姓名,身份证号,单位账号,个人账号 from 业务_个人基本情况表 where 账户状态=’1’例3:从科目余额表中查询出2010年借方金额大于50万或2010年借方金额小于10万的记录,每条记录只显示摘要、科目编码、借方金额、贷方金额、年度5个字段Select摘要,科目编码,借方金额,贷方金额,年度 From 科目余额where(借方金额>500000 and 年度=2010) or (借方金额<100000 and 年度=2010)Select top 100 字段1,字段2……字段N from 表 where 条件含义:从表中根据where 条件查询记录,显示前100条记录,每条记录按照字段1、字段2….字段N的设置显示例1:从凭证库中查询2004年1月31日的前100条凭证,每条凭证只显示凭证日期、凭证号、科目名称、借方金额、贷方金额、会计月份 6个字段Select top 100凭证日期,凭证号,科目名称,借方金额,贷方金额,会计月份 From 凭证库 where 凭证日期=’2004-1-31’例2:根据业务_个人基本情况表,找出缴存状态为”正常”的前100条记录Select top 100个人姓名,身份证号,单位账号,个人账号 from 业务_个人基本情况表 where 账户状态=’1’(二)通配符的使用*表示将全部的字段内容都显示出来例1:从业务_电子警察表中筛选出无车号或者车牌号小于3位的记录Select * from 业务_电子警察 where 车号=’’ or Len(车号)<3 例2:从科目余额表中查询出2002年收入大于50万的记录Select * from 科目余额 where 借方金额>500000 and 年度=2002%表示零或多个字符例1:从凭证库中查询2003年各月的房租收入情况Select month(凭证日期) as 月份, sum(贷方金额) as 房租金额 from 凭证 where 摘要 like ‘%房租%’ and 年度=2003 例2:从凭证库中查询 2008年包含税的记录Select * from 凭证库 where摘要 like ‘%税%’ and 年度=2008_表示任何一个字符例1:根据科目余额表查询出目编码为10开头的一级科目记录Select * from 科目余额 where 科目编码 like ‘10_’例2:根据凭证库查询科目名称长度为4且以银行开始的前100条记录Select top 100 * into 银行记录表from 凭证库 where 科目名称 like ‘银行_ _’(三)查询的记录生成新表select字段1,字段2……字段N into 新表 from 旧表 where 条件含义:从旧表中按照条件查询相关记录并生成新表例1:从捐款明细账中查询并生成2005年通过邮寄汇款的捐款名单Select * into 2005年邮寄捐款表 from 业务_捐款明细表where 捐款方式=’邮寄’ and year(捐款时间)=2005例2:根据业务_个人基本情况表,找出缴存状态为”正常”的记录,生成”业务_临时_个人基本情况表”Select 个人姓名,身份证号,单位账号,个人账号 into业务_临时_个人基本情况表from 业务_个人基本情况表 where 账户状态=’1’(四)查询出的字段重新命名select字段1 as 字段11,字段2 as 字段22……字段N as 字段nn from表 where 条件或者select字段1 as 字段11,字段2 as 字段22……字段N as 字段nn into 新表 from 旧表 where 条件例1:从科目余额表中查询出科目编码为4121、4125、4126、4128的记录,并把借方发生额字段重新命名为经费支出情况、贷方发生额命名为经费收入情况select科目编码,科目名称,借方发生额 as 经费支出情况,贷方发生额 as 经费收入情况,期末余额 from 科目余额 where 科目编码like ’4121’ or 科目编码 like ‘4125’ or 科目编码 like ‘4128’ or 科目编码 like ‘4126’例2:从凭证库中查询2003年各月的房租收入情况Select month(凭证日期) as 月份, sum(贷方金额) as 房租金额 into 2003年房租收入情况表from 凭证库 where 科目编码like ‘40702’ and 摘要 like ‘%租%’(五)常用子句select字段into 新表 from 旧表 where 条件 order by 字段Asc/DescOrder by 对查询结果进行排序, ASC升序排序,Desc降序排序例1:从科目余额表中查询出2002年收入大于50万的记录Select * from 科目余额 where 借方金额>500000 and 年度=2002 order by 借方金额 asc例2:分析2008年人员支出构成Select 科目编码,科目名称,sum(借方金额) as 金额合计 from 凭证库 where 科目编码 like ‘501%’ group by 科目编码 order by sum(借方金额) descselect字段into 新表 from 旧表 where 条件 Group by 字段Group by 可以快速而简便地将查询结果按照指定的字段进行分组例1:把凭证库中的记录按照科目名称分组Select 科目名称,科目编码,借方金额,贷方金额 from 凭证库group by 科目名称例2:从凭证库中查询并2003年各月的房租收入情况Select month(凭证日期) as 月份, sum(贷方金额) as 房租金额 from 凭证 where 科目编码 like ‘40702’ and 摘要 like ‘%租%’group by month(凭证日期)例3:从凭证库中查询科目编码为501开头的记录,并根据不同的科目编码分析借方金额情况Select 科目编码,科目名称,sum(借方金额) as 金额合计 from 凭证库 where 科目编码 like ‘501%’ group by 科目编码 order by sum(借方金额) descselect字段into 新表 from 旧表 where 条件 Group by 字段Having 分组条件Having语句通常跟在Group by语句后,作为分组后的过滤条件例1:根据凭证库查询科目名称包含事业的记录,并按照科目名称分组Select 科目名称,count(*) as 科目数量 from凭证库 group by 科目名称 having 科目名称 like ‘%事业%’例2:根据业务_缴存种类统计表,统计出单位为所有职工缴存的住房公积金金额都一样的单位账号,生成业务_临时_缴存种类统计表Select 单位账号 into 业务_临时_缴存种类统计表 from 业务_缴存种类统计表 group by 单位账号 having count (单位金额)=1 (六)常用函数Year (日期) 返回某个日期的年份例:从捐款明细账中查询并生成2005年通过邮寄汇款的捐款名单Select * into 2005年邮寄捐款表 from 业务_捐款明细表where 捐款方式=’邮寄’ and year(捐款时间)=2005Month(日期) 返回某个日期的月份例:从凭证库中查询2003年各月的房租收入情况Select month(凭证日期) as 月份, sum(贷方金额) as 房租金额 into 2003年房租收入情况表from 凭证库 where 科目编码like ‘40702’ and 摘要 like ‘%租%’Sum(数值列名/数值字段名) 返回满足条件的某一数值列中的数值的总和例1:统计2008年凭证库借方金额的总发生额Select sum(借方金额) as 借方金额汇总 from 凭证库 where 年度=2008例2:根据业务_手续费返还表查询2005年、2006年,不同客户的返还金额合计Select 客户代码,sum(返还金额) as 返还金额合计 into 业务_手续费返还汇总表 from 业务_手续费返还表 where year(日期)=2005 and year(日期)=2006 group by 客户代码例3:分析2008年人员支出构成Select 科目编码,科目名称,sum(借方金额) as 金额合计 from 凭证库 where 科目编码 like ‘501%’ group by 科目编码 order by sum(借方金额) descLeft(字符串,数值表达式) 字符串左截取函数例:根据业务_个人缴存明细表,找出2005年缴存状态正常的缴存记录,生成业务_临时_个人缴存明细表Select 个人账号,所属年月 into 业务_临时_个人缴存明细表from 业务_个人缴存明细表 where left(所属年月,4)=’2005’ and 缴存类型<>’6’Count(列名/字段名) 返回满足where条件的记录行数,字段名也可用*代替例1:统计个人业务表中每年参保人数Select count(year(所属年度)) as 参保人数, year(所属年度) from 个人业务 where 参保状态=’1’例2:统计凭证库的记录数Select count(*) as 总记录数 from凭证库例3:根据业务_缴存种类统计表,统计出单位为所有职工缴存的住房公积金金额都一样的单位账号,生成业务_临时_缴存种类统计表Select 单位账号 into 业务_临时_缴存种类统计表 from 业务_缴存种类统计表 group by 单位账号 having count (单位金额)=1Abs(数值) 绝对值函数例:按账号汇总全年的支出额select 账号,户名,sum(abs(发生额)) as 全年支出额 from 业务_存款交易明细表 where 发生额<0 group by 账号Len(字符串)返回某字符串的长度例1:根据凭证库查询科目名称长度为4且以银行开始的记录Select * into 银行记录表from 凭证库 where 科目名称 like‘银行%’ and Len(科目名称)=4例2:查询科目余额表一级科目编码的记录Select * into 一级_科目余额表 from 科目余额 where Len(科目编码)=3二、多表查询Select字段1,字段2……字段N from 表1 join 表2 on 表1.字段 <关系运算符> 表2.字段 where 条件或Select A.字段1,A.字段2……A.字段N, B.字段1,B.字段2……B.字段N from 表1 as A join 表2 as B on A.字段 <关系运算符> B.字段 where 条件或Select A.字段1,A.字段2……A.字段N, B.字段1,B.字段2……B.字段N into 新表 from 表1 as A join 表2 as B on A.字段 <关系运算符> B.字段 where 条件含义:对两个表中类型相同的字段进行关系运算,查询符合关系运算的记录例1:查询凭证库与会计科目表中科目编码相同的记录select 凭证库.科目编码,凭证库.科目名称,会计科目表.科目级别from 凭证库 join 会计科目表 on 凭证库.科目编码=会计科目表.科目编码或者select a.科目编码,a.科目名称,b.科目级别 from 凭证库 as a join 会计科目表 as b on a.科目编码=b.科目编码例2:将预算执行表与用款计划表关联,生成预算与用款表Select a.部门,a.项目,a.支付方式,a.累计服从于出,b.期末结余,b.总计 into 预算与用款表 from 预算执行表 as a join 用款计划表 as b on a.部门=b.部门 and a.项目=b.项目 and a.支付方式=b.支出类型例3:将上线支取表和提取原因表进行关联,形成带有提取原因的公积金提取表Select a.交易日期,a.单位公积金编号,a.单位名称,a.个人公积金账号,a.姓名,a.提取金额,b.提取原因,a.备注 into 公积金提取表 from 上线支取表 as a join 提取原因表 as b on a.提取原因=b.提取原因代码例4:未缴费而开户的参保情况Select a.个人帐号,a.参保人员编号,a.参保人姓名 from 缴费统计表 as a join 个人_业务信息表 as b on a.个人账号=b.id where a.个人账号 is null三、子查询、嵌套查询Select * from 表1 where 表1.字段1 in (select 字段2 from 表2 where 条件)或Select * from 表1 into 新表where 表1.字段1 not in (select 字段2 from 表2 where 条件)或Select * into 新表from (select * from 表1 where 条件) 含义:表2的查询结果作为表1的查询条件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7 拓展练习
请思考:对于比较条件查询,where子句的返回值为true或false, 对于输出结果有何影响?
5 比较条件查询操作
【实例1】查询女生的姓名、性别、班级。 Select sname,sex,class from s where sex= '女'
6 比较条件查询操作
【实例2】检索1985年12月31日以后出生的学生姓名和出生日期。 Select sname,birthday from s where year(birthday)>=1986
Select语句比较条件查询
Comparison condition query of Select
2
知识点内容概要
比较条件查询简介 比较条件查询操作
3 比较条件查询简介
在查询ห้องสมุดไป่ตู้据时,若只需要查询表中满足条件的数据而不是全部数据,是需要在 Select语句中通过where子句实现。
比较条件就是用来将两个数值表达式进行对比,参与对比的表达式可以是具体的值, 也可以是函数或表达式,但对比的两个参数数据类型要一致。
格式:Select <字段列表> from <表名> where <逻辑表达式> 功能:使用Select输出表中满足条件的列及列数据。
4 比较条件查询简介
比较条件语法:where 表达式1 比较运算符 表达式2 常用的比较运算符:等于(=)、不等于(<>)、大于(>)、小于(<)、大于
等于(>=)、小于等于(<=)。 注意:字符串用单引号括起来,而不是双引号。
相关文档
最新文档