当前位置: 首页 > 图文教程 > 数据库 > MSSQL > sql高级技巧几个有用的Sql语句

MSSQL
MS SQL SERVER2005 XML 最佳实践
SQL Server对文件进行全文检索的查询
教你构建SQL Server可管理安全机制
维护SQL Server的交易日志经验总结
SQL SERVER 2005 EXPRESS不能远程连接的问题
SQL Server与Oracle并行访问本质区别
SQL Server数据库优化其索引的小技巧
分析及解决SQLServer死锁问题
用SQL Server为Web浏览器提供图像
SQL Server SQL Agent服务使用小结
SQL Server 存储过程的分页方案比拼
SQL Server数据库中存储引擎深入探讨
四招解决SQL Server对上亿表的排序和join的问题
SQL Server数据库管理员必须掌握的DBCC命令
如何将sql数据库的文件备份到本地?
如何解决Sybase数据库乱码问题详解
SQL Server:SQLServer中最小函数依赖集
小编谈Transact-SQL中的一些命名规范
谈SQL编写规范
浅谈SQL命名与注释规范

MSSQL 中的 sql高级技巧几个有用的Sql语句


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 52 ::
收藏到网摘: n/a

sql语句对于数据的一些操作,根据另外一个表的内容修改第一个表的内容 1、例如:有两个表A(字段1,字段2,字段3)、B(字段2,字段3),其中存储数据如下所示
表A
字段1 字段2 字段3
1 <Null> 地段内容1
1 <Null> 地段内容1
2 <Null> 地段内容2
2 <Null>

地段内容2

3 <Null> 地段内容3
4 <Null> 地段内容4
5 <Null> 地段内容5
5 <Null> 地段内容5
5 <Null> 地段内容5
6 <Null> 地段内容6
7 <Null> 地段内容7
8 <Null> 地段内容8
8 <Null> 地段内容8
8 <Null> 地段内容8
8 <Null> 地段内容8

表B
字段2 字段3
wdz1 地段内容1
wdz2 地段内容3
wdz3 地段内容5
wdz4 地段内容6
wdz5 地段内容7
wdz6 地段内容8

使用下面的Sql语句(可以达到将表A中字段3与表B中字段3相同的数据字段2填充到表A中的字段2)
update 表1 set 字段1 = (select 字段1 from 表2 where 表1.字段3=表2.字段3)
结果如下表所示
表A结果
字段1 字段2 字段3
1 wdz1 地段内容1
1 wdz1 地段内容1
2 <Null> 地段内容2
2 <Null>

地段内容2

3 wdz2 地段内容3
4 <Null> 地段内容4
5 wdz3 地段内容5
5 wdz3 地段内容5
5 wdz3 地段内容5
6 wdz4 地段内容6
7 wdz5 地段内容7
8 wdz6 地段内容8
8 wdz6 地段内容8
8 wdz6 地段内容8
8 wdz6 地段内容8

下面是本条Sql语句的网友意见
一、“江千帆
update 表1 set 字段1 = (select 字段1 from 表2 where 表1.字段3=表2.字段3)
的效率很低,如果有X条记录,会导致子查询执行X次.
如果我们这样写,就可以充分利用索引(如果两表在字段3上面都建立了索引),并且避免不必要的多次执行。
update 表1 set 表1.字段2 =表2.字段2 from 表1 inner join 表2 on 表1.字段3=表2.字段3
网友意见归纳结束。

2、例如:如第1点中的表A相同,需要查询出表A的重复数据的Sql语句如下
select 字段1 from 表A group by 字段1 having count(字段3) > 1
查询结果如下
表A查询结果
字段1
1
2
5
8
3、例如:需要在Sql Server2000中查询处某固定物理路径的X1.dbf文件,使用的Sql语句如下(必须先安装VF驱动才能使用此Sql语句)
select * from OpenDataSource('VFPOLEDB.1','User ID=;DSN=;Collating Sequence=MACHINE;Data Source=C:\dbfFiles\X1.dbf;Password=;Cache Authentication=False;Mask Password=False;Mode=Share Deny None;Extended Properties=;Encrypt Password=False')...X1
注:其他的非VF数据库文件的查询类似,只需要设置OpenDataSource中的参数即可。参数说明为OpenDataSource(数据源驱动名,数据源连接字符串)