远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

union 运算符

说明 返回由两个或多个查询的结果组成的一个结果集。除非指定 all 关键字, 否则重复行会从结果集中删除。

语法 select [top unsigned_integer] select_list

[into clause] [from clause] [where clause] [group by clause] [having clause]

[union [all]

select [top unsigned_integer] select_list

[from clause] [where clause]

[group by clause] [having clause]]... [order by clause]

[compute clause]

参数 top unsigned_integer

最多行数限制应用于组成联合的各个 select,而不应用于整个联合。

into

根据选择列表中指定的列以及在 where 子句中选择的行来创建新表。 联合运算中的第一个查询是唯一能够包含 into 子句的查询。

union

创建由两个 select 语句指定的数据的联合。

all


包括结果中的所有行;不删除重复行。

示例 示例 1 结果集包含 sales sales_east 表的 stor_id stor_name 列中的内容:

select stor_id, stor_name from sales union

select stor_id, stor_name from sales_east

示例 2 第一个查询中的 into 子句指定 results 表持有 publishersstores

stores_east 表的指定列的联合的最终结果集:

select pub_id, pub_name, city into results from publishers

union

select stor_id, stor_name, city from stores union

select stor_id, stor_name, city from stores_east

示例 3 首先,生成 sales sales_east 表的指定列的 union。然后生成此结 果和 publishers union。最后,生成第二个结果和 authors union

select au_lname, city, state from authors union

((select stor_name, city, state from sales union


select stor_name, city, state from sales_east) union

select pub_name, city, state from publishers)

示例 4 返回六行。最多行数限制应用于组成联合的各个 select,而不应用 于整个联合:

select top 3 au_lname from authors union all

select top 3 title from titles

用法 union 运算符的一侧最多可以有 50 个子查询。

union 查询的所有各侧最多可以有 256 个表。

可以在 select 语句中使用 union,例如:

create view

select * from Jan1998Sales union all

select * from Feb1998Sales union all

只能在 union 语句的末尾使用 order by compute 子句,以定义最终 结果的顺序或计算摘要值。

group by having 子句仅能在单独的查询中使用,不能用于影响最 终结果集。

包含 union 运算符的 SQL 语句的缺省计算顺序是从左到右。

因为 union 是二元运算,在表达式涉及两个以上查询时必须添加小 括号以指定运算顺序。

union 语句中的第一个查询可以包含一个 into 子句,该子句创建一个 用于存放最终结果集的表。 into 语句必须位于第一个查询中,否则 您将收到错误消息 (见示例 2)。

union 运算符可用于 insert...select 语句中。例如:

insert into sales.overall select * from sales union

select * from sales_east

• SQL 语句中的所有选择列表必须具有相同数目的表达式 (列名、算 术表达式、集合函数,等等)。例如,下面的语句无效,因为第一 个选择列表中的表达式比第二个中的多:

/* Example of invalid command--shows imbalance */ /* in select list items */

select au_id, title_id, au_ord from titleauthor


union

select stor_id, date from sales

union 语句的选择列表中的相应列必须以相同顺序出现,因为 union

会以各个查询中给出的顺序一对一地比较列。

union 生成的结果表的列名来自 union 语句中的第一个单独的查询。若 要为结果集定义新的列标题,请在第一个查询中进行。另外,若要 用新名称引用结果集中的一列 (例如在 order by 语句中),应在第一 个 select 语句中用该新名称进行引用。例如,下面的查询是正确的:

select Cities = city from stores union

select city from stores_east order by Cities

作为 union 操作的一部分的列的说明不必相同。 1-35 列出了数据 类型和结果表中相应列的规则。

1-35: union 运算中的结果数据类型

image

union 运算中列的数据类型 结果表中相应列的数据类型

数据类型不兼容 (数据转换未由 Adaptive Server 隐式处理)

Adaptive Server 返回的错误。

二者均为固定长度字符,长度为 L1 L2 固定长度字符,长度等于 L1 L2 中之较大者。 二者均为固定长度二进制,长度为 L1 L2 固定长度二进制,长度等于 L1 L2 中之较大者。 其中之一或两者均为可变长度字符 可变长度字符,长度等于为联合中的列指定的长度中的

最大值。

其中之一或两者均为可变长度二进制 可变长度二进制,长度等于为联合中的列指定的长度中

的最大值。

二者均为数值数据类型 (例如 smallintintfloatmoney

数据类型等于两列的最大精度。例如,如果表 A 中的一 列类型为 int,而在表 B 中的相应列的类型为 float,于是 结果表的相应列的数据类型为 float,因为 float int 更精 确。

两个列说明均指定 NOT NULL 指定 NOT NULL


限制

不能在子查询中使用 union 运算符。

不能将 union 运算符和 for browse 子句一起使用。

标准 符合 ANSI SQL 的级别符合初级 以下是 Transact-SQL 扩展:

insert 语句的 select 子句中使用 union


select 语句中有 union 运算符时,在 select 语句的 order by 子句中指 定新的列标题

另请参见 命令 compute clause, declare, group by having 子句 , order by 子句 , select, where 子句 .

函数 convert .




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------