08Microsoft SQL Server 数据查询
Microsoft SQL Server 数据查询
单表查询所有列
--查询所有行所有列
select all * from table;
--查询不重复行的所有列
select distinct * from table;
--查询前n行所有列
select top n * from table;
--查询前n%行所有列
select top n percent * from table;
单表查询部分列
--查询所有行部分列
select all 列1,列n from table;
--查询不重复行的部分列
select distinct 列1,列n from table;
--查询前n行部分列
select top n 列1,列n from table;
--查询前n%行部分列
select top n percent 列1,列n from table;
对列设置别名
--为列设置别名
select 列1 别名1,列n as 别名n from table;
计算列及计算列值
create table 表名称
(
列1 char(10) not null,
列2 varchar(8) not null,
列3 char(2) not null,
列4 varchar(30),
列5 smalldatetime not null,
列6 text,
列7 AS 列1*列2 PERSISTED
)
go
select 列1,列1*表达式 as 别名1 from table;
条件查询比较运算符
>=(大于等于),>(大于),=(等于),<=(小于等于),<(小于),!=(不等于),<>(不等于),!>(不大于),!<(不小于)
select * from table where 列1=条件;
条件查询逻辑运算符
--逻辑运算符取值优先顺序:not,and,or.
select * from table where 列1=条件 and 列2=条件;
条件查询模糊查询
-- %代表任意多个字符,_代表单个字符,[]代表集合或范围内的字符,[^]代表不在集合或范围内的字符。
select * from table where 列1 like [^abc];
条件查询取值范围查询
-- between ...and... in not in
select * from table where 列1 in(条件);
条件查询关于空值查询
-- is null is not null
select * from table where 列1 is null;
order by 条件排序
--ASC代表升序DESC代表降序,对数据类型text,ntext,image不能排序
select * from table where 列1=条件 order by 排序表达式 desc;
聚合函数
-- count 统计个数,sum 列值总和只能用于数值类型
-- max 列中最大值 min 列中最小值
-- avg 计算一列中所有值的平均值,只能用于数值类型
select COUNT(*) from table
GROUP BY分组HAVING排序
select 列1 from table group by 列1 HAVING COUNT(*)>2;
多表等值连接查询
SELECT TB.id,NAME FROM TB,TB1 WHERE TB.id=tb1.ID
多表内联接INNER查询
SELECT TB.id,NAME FROM TB INNER JOIN TB1 on TB.id=tb1.ID
都符合条件
多表外连接OUTER查询
SELECT TB.id,NAME FROM TB LEFT OUTER JOIN TB1 on TB.id=tb1.ID
表一全部及表二符合条件行
SELECT TB.id,NAME FROM TB RIGHT OUTER JOIN TB1 on TB.id=tb1.ID
表一符合条件行及表二所有
SELECT TB.id,NAME FROM TB FULL OUTER JOIN TB1 on TB.id=tb1.ID
表一及表二所有行
多表交叉CROSS连接查询
SELECT TB.id,NAME FROM TB CROSS JOIN TB1 where TB.id=tb1.ID
即两个表的笛卡儿积俩表相乘
表自连接
select a.id,b.name from tb1 a inner join tb1 b on a.id=b.id
带有any,some或all关键字的子查询
筛选>all或any(条件)
带有EXISTS的子查询
两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
集合的并UNION运算
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
select * from tb union all select * from tb
所有行数据
select * from tb union select * from tb
非重复行数据
EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。
select * from ta1 except select * from ta2;
INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
select * from ta1 intersect select * from ta2;
随机选取记录
--从表中随机选取记录
select top 2 * from ta1 order by newid();
局域网跨数据库查询
--开启Ad Hoc Distributed Queries组件
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--关闭Ad Hoc Distributed Queries组件
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
--查询金蝶销售订单
SELECT
DISTINCT
aa.FID 订单编号,
aa.FBILLNO 单据编号,
aa.F_PAEZ_CONTRACTNO 合同号,
aa.FDATE 业务日期,
cc.FNAME 销售组织,
bb.FNAME 客户名称,
aa.F_PAEZ_ORDERSOURCE 订单来源,
aa.F_PAEZ_TEXT 最终客户
FROM OPENDATASOURCE(
'sqloledb',
'Data Source=192.168.1.199;User Id=sa;Password=123'
).AIS20171005203432.dbo.T_SAL_ORDER aa
LEFT JOIN OPENDATASOURCE(
'sqloledb',
'Data Source=192.168.1.199;User Id=sa;Password=123'
).AIS20171005203432.dbo.T_BD_CUSTOMER_L bb ON aa.FCUSTID=bb.FCUSTID
LEFT JOIN OPENDATASOURCE(
'sqloledb',
'Data Source=192.168.1.199;User Id=sa;Password=123'
).AIS20171005203432.dbo.T_ORG_ORGANIZATIONS_L cc ON aa.FSALEORGID=cc.FORGID
WHERE aa.FBILLNO='035601-1808210002'
08Microsoft SQL Server 数据查询的更多相关文章
- 6、SQL Server 数据查询
一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的 ...
- SQL Server 数据查询 整理
一.使用SELECT检索数据 数据查询是SQL语言的中心内容,SELECT 语句的作用是让数据库服务器根据客户要求检索出所需要的信息资料,并按照规定的格式进行整理,返回给客户端. SELECT 语句的 ...
- SQL Server将查询出数据进行列转行操作
在日常的SQL Server数据查询时经常会遇到需要将数据列转换成行的操作,现将自己学习的列转行SQL语句举例如下: --首先查询语句 SELCT * FROM YXBAK..TBYJKSTEMP ...
- Sql Server中查询今天、昨天、本周、上周、本月、上月数据
Sql Server中查询今天.昨天.本周.上周.本月.上月数据 在做Sql Server开发的时候有时需要获取表中今天.昨天.本周.上周.本月.上月等数据,这时候就需要使用DATEDIFF()函数及 ...
- CASE函数 sql server——分组查询(方法和思想) ref和out 一般处理程序结合反射技术统一执行客户端请求 遍历查询结果集,update数据 HBuilder设置APP状态栏
CASE函数 作用: 可以将查询结果集的某一列的字段值进行替换 它可以生成一个新列 相当于switch...case和 if..else 使用语法: case 表达式/字段 when 值 then ...
- 【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件, 需要用不同的驱动程序来实现. 在64位的机 ...
- 【SQL Server数据迁移】32位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在32位的机器 ...
- Sql Server参数化查询之where in和like实现详解
where in 的参数化查询实现 首先说一下我们常用的办法,直接拼SQL实现,一般情况下都能满足需要 string userIds = "1,2,3,4"; using (Sql ...
- 【转】Sql Server参数化查询之where in和like实现之xml和DataTable传参
转载至: http://www.cnblogs.com/lzrabbit/archive/2012/04/29/2475427.html 在上一篇Sql Server参数化查询之where in和li ...
随机推荐
- SPOJ 15. The Shortest Path 最短路径题解
本题就是给出一组cities.然后以下会询问,两个cities之间的最短路径. 属于反复询问的问题,临时我仅仅想到使用Dijsktra+heap实现了. 由于本题反复查询次数也不多,故此假设保存全部最 ...
- nRF52832之硬件I2C
这几天一直在折腾nRF52832的硬件I2C,到了今天最终出现了成果,在此也印证了那句话:"耕耘就有收获" 52832的硬件I2C尽管官方提供了demo,可是自己对I2C通信理解的 ...
- beego1---beego,bee环境配置
1.配置环境变量GOPATH(代码路径,先在里面建立src,pkg,bin3个目录),GOROOT:go安装的目录,go安装目录下的bin目录放到Path环境变量. 安装完bee工具之后,bee 可执 ...
- Eclipse 工程配置与目录结构及各种文件夹(常用插件)
.classpath..project 是 Eclipse 工程所必须的文件. OpenExplorer: 该 jar 包的下载地址:samsonw/OpenExplorer 安装配置方法:eclip ...
- P3199 [HNOI2009]最小圈 01分数规划
裸题,第二个权值是自己点的个数.二分之后用spfa判负环就行了. 题目描述 考虑带权的有向图G=(V,E)G=(V,E)G=(V,E)以及w:E→Rw:E\rightarrow Rw:E→R,每条边e ...
- spring-boot-configuration-processor的作用
spring默认使用yml中的配置,但有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor了 先引入pom依赖 <d ...
- 4-2 买家类目-dao(下)
查询出来的对象ProductCategory就已经有updateTime和createTime了,然而你只是把对象的categoryType给修改了一下,修改之后就执行save方法保存了.所以它还是原 ...
- C# 简单实现直线方程,抛物线方程(转载)
http://www.cnblogs.com/hsiang/archive/2017/01/17/6294864.html 本例子是简单的在WinForm程序中实现在坐标系中绘制直线方程,抛物线方程, ...
- P2746 [USACO5.3]校园网Network of Schools(Tarjan)
P2746 [USACO5.3]校园网Network of Schools 题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”).注意即使 ...
- 一些常见的iOS面试问题,一眼就能看出 初级和高级工程师的区别
前言 面试题中有一些一般性的问题,通常是会问到的.面试iOS应聘者时,切入点很重要,不同的切入点会导致不同的结果,没有找到合适的切入点也无法对应聘者有一个全面的了解. 所以下面的面试问题更多的是提供方 ...