易截截图软件、单文件、免安装、纯绿色、仅160KB

sql中 in 、not in 、exists、not exists 用法和差别

exists (sql 返回结果集为真)
not exists (sql 不返回结果集为真)
如下:
表A
ID NAME
1    A1
2    A2
3  A3
表B
ID AID NAME
1    1 B1
2    2 B2
3    2 B3
表A和表B是1对多的关系 A.ID => B.AID
SELECT ID,NAME from A WHERE EXIST (SELECT * from B WHERE A.ID=B.AID)
执行结果为
1 A1
2 A2
原因可以按照如下分析
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=1)
--->SELECT * from B WHERE B.AID=1有值返回真所以有数据
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=2)
--->SELECT * from B WHERE B.AID=2有值返回真所以有数据
SELECT ID,NAME from A WHERE EXISTS (SELECT * from B WHERE B.AID=3)
--->SELECT * from B WHERE B.AID=3无值返回真所以没有数据
NOT EXISTS 就是反过来
SELECT ID,NAME from A WHERE NOT EXIST (SELECT * from B WHERE A.ID=B.AID)
执行结果为
3 A3
===========================================================================
EXISTS = IN,意思相同不过语法上有点点区别,好像使用IN效率要差点,应该是不会执行索引的原因
SELECT ID,NAME from A  WHERE ID IN (SELECT AID from B)
NOT EXISTS = NOT IN ,意思相同不过语法上有点点区别
SELECT ID,NAME from A WHERE ID NOT IN (SELECT AID from B)
下面是普通的用法:
SQL中IN,NOT IN,EXISTS,NOT EXISTS的用法和差别:
  IN:确定给定的值是否与子查询或列表中的值相匹配。
  IN 关键字使您得以选择与列表中的任意一个值匹配的行。
  当要获得居住在 California、Indiana 或 Maryland 州的所有作者的姓名和州的列表时,就需要下列查询:
  SELECT ProductID, ProductName from Northwind.dbo.Products WHERE CategoryID = 1 OR CategoryID = 4 OR CategoryID = 5
  然而,如果使用 IN,少键入一些字符也可以得到同样的结果:
  SELECT ProductID, ProductName from Northwind.dbo.Products WHERE CategoryID IN (1, 4, 5)
  IN 关键字之后的项目必须用逗号隔开,并且括在括号中。
  下列查询在 titleauthor 表中查找在任一种书中得到的版税少于 50% 的所有作者的 au_id,然后从 authors 表中选择


相关文档:

Weblogic8.1连接SQL Server 2005(转)

   weblogic8.1没有带SQL Server 2005的JDBC驱动,需要去微软网站下载。
    地址:http://msdn.microsoft.com/vstudio/express/sql/download/
    启动   SQL Server Configuration manager,展开SQL Server 2005
网络配置,单击“MSSQLSERVER的协议&rdqu ......

SQL中object_id函数的用法

SQL中object_id函数的用法 收藏
 int object_id('objectname');
此方法返回数据库对象标识号。
其中,参数objectname 表示要使用的对象,其数据类型为nchar或char(如果为char,系统将其转换为nchar)
返回类型为int,表示该对象在系统中的编号。
比如:
use wf_timesheet
select object_id('usp_check_excess ......

数据批量导入远程SQL服务器的亲身实践

  目的:将数据批量导入远程服务器
  环境:SQL软件,EXCEL软件,VS2005软件,本地两个机器上都有SQL数据库,而且数据存放在其中一个表。
  操作实践
  1、用远程数据库的ip、用户名、密码在本地登录;
  2、结果,其中一个机器能登录,一个不能登录(以下操作在可登录的机器上完成);
  3、第一次我想通 ......

ORACLE中用rownum分页并排序的SQL语句

第一种: 
select b.* from
 ( select a.*, rownum row_num from
   (select t.* from A05_ORGANIZATION t order by org_name_en asc) a
  ) b
 where b.row_num  between 1 and 5  order by b.row_num asc
第二种(更高效):
select b.* from
 ( select a.*, rown ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号