select k.* ,m.* from A k,B m where k.条件1 and k.条件2 and m.条件1 and m.条件2
解决方案 »
- 求救:sql2008,max memory值设置过低,无法连接了
- 如何在函数或存储过程的参数中使用table数据类型?
- 关于日志收缩问题,请帮忙看看..
- Database1.DBO.Table1 VS Database1..Table1
- 100分,“XML传入数据到sql server 然后到存储过程解析”如何作到??
- ms2005 分离后的数据日志文件被册了,有什么特效办法恢复。
- 有关ACCESS数据库转换SQL SERVER的问题.
- 如何对N个字段进行联合约束?
- 请教:如何利用程序实现SQL SERVER 2000 的安装
- 我该如何建这个题库啊
- 请教处理重复记录
- 动态添加字段,急,非常急!!
union all
select * from B where 条件1 and 条件2
union
select * from B where 条件1 and 条件2
UNION 运算符使用准则
使用 UNION 运算符时请遵循以下准则: 在使用 UNION 运算符组合的语句中,所有选择列表的表达式数目必须相同(列名、算术表达式、聚合函数等)。
在使用 UNION 组合的结果集中的相应列、或个别查询中使用的任意列的子集必须具有相同数据类型,并且两种数据类型之间必须存在可能的隐性数据转换,或提供了显式转换。例如,在 datetime 数据类型的列和 binary 数据类型的列之间不可能存在 UNION 运算符,除非提供了显式转换,而在 money 数据类型的列和 int 数据类型的列之间可以存在 UNION 运算符,因为它们可以进行隐性转换。
用 UNION 运算符组合的各语句中对应的结果集列出现的顺序必须相同,因为 UNION 运算符是按照各个查询给定的顺序逐个比较各列。
示例如下: table3 table4
a b -c a b
int char(4) char(4) char(4) float
--- ------- ------- ------- -------
1 abc jkl jkl 1.000
2 def mno mno 5.000
3 ghi pqr 执行以下查询:SELECT a, b FROM table3
UNION
SELECT b, a FROM table4下面是结果集:a b
-------- -----
1.000000 abc
2.000000 def
3.000000 ghi
1.000000 jkl
5.000000 mno在 UNION 操作中组合不同的数据类型时,这些数据类型将使用数据类型优先级的规则进行转换。在前面的示例中,int 值转换成 float 值,因为 float 类型的优先权比 int 类型高。有关更多信息,请参见数据类型的优先顺序。 以下查询将产生错误信息,因为相应列的数据类型不兼容:SELECT b, c FROM table3
UNION
SELECT a, b FROM table4通过 UNION 生成的表中的列名来自 UNION 语句中的第一个单独的查询。若要用新名称引用结果集中的某列(例如在 ORDER BY 子句中),必须按第一个 SELECT 语句中的方式引用该列:
SELECT city AS Cities FROM stores_west
UNION
SELECT city FROM stores_east
ORDER BY city
select k.* ,m.* into table1 from A k,B m where k.条件1 and k.条件2 and m.条件1 and m.条件2
速度很慢,主要B表中的数据量非常大,实际上从两个表中取出的数据合并在一起也不超过
300条。请问有没有什么好的方法能提高速度。
select name from a where ...
union all
select name from b where...
<%
sqlstr="select k.* ,m.* from A k,B m where k.条件1 and k.条件2 and m.条件1 and m.条件2"
set rs=cnn.execute(sqlstr)
while not rs.eof
response.write rs("你要输出的")&"<BR>"
rs.movenext
wend%>
(条件1和条件2相同)由于表B的记录量很大,估计有上万条,所以每次执行都要花很长的时间才能出来数据,所以想请教大家有没有什么好的方法能提高速度。
1.声称新表temp
select * into temp from A where 条件1 union all select * from B where 条件2
2.查询
select z,x,c from temp order by z desc
3.输出查询结果
4.删除临时表temp
drop table temp