UNION 运算符使用准则 使用 UNION 运算符时请遵循以下准则: 在使用 UNION 运算符组合的语句中,所有选择列表的表达式数目必须相同(列名、算术表达式、聚合函数等)。 在使用 UNION 组合的结果集中的相应列、或个别查询中使用的任意列的子集必须具有相同数据类型,并且两种数据类型之间必须存在可能的隐性数据转换,或提供了显式转换。例如,在 datetime 数据类型的列和 binary 数据类型的列之间不可能存在 UNION 运算符,除非提供了显式转换,而在 money 数据类型的列和 int 数据类型的列之间可以存在 UNION 运算符,因为它们可以进行隐性转换。 用 UNION 运算符组合的各语句中对应的结果集列出现的顺序必须相同,因为 UNION 运算符是按照各个查询给定的顺序逐个比较各列。 执行以下查询: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
create table 表(月份 varchar(10),编号 varchar(10),分数 int) insert 表 select '01','A01',80 union all select '01','A02',75 union all select '01','A03',82 union all select '02','B01',85 union all select '02','B02',86 union all select '02','B03',92 go
提醒一点,union会自动去除重复的行,如果想保留要用union all
union 或union all都并的操作。 要前后的字段類型一樣才可以。 但是union 和union all不同的在于就是union 刪除重復的記錄。 而union all是所有的。 select a,b,c from table1 union select a,b,c from table2 用union 沒有重復記錄。 union all有可能有就是所的
使用 UNION 运算符时请遵循以下准则: 在使用 UNION 运算符组合的语句中,所有选择列表的表达式数目必须相同(列名、算术表达式、聚合函数等)。
在使用 UNION 组合的结果集中的相应列、或个别查询中使用的任意列的子集必须具有相同数据类型,并且两种数据类型之间必须存在可能的隐性数据转换,或提供了显式转换。例如,在 datetime 数据类型的列和 binary 数据类型的列之间不可能存在 UNION 运算符,除非提供了显式转换,而在 money 数据类型的列和 int 数据类型的列之间可以存在 UNION 运算符,因为它们可以进行隐性转换。
用 UNION 运算符组合的各语句中对应的结果集列出现的顺序必须相同,因为 UNION 运算符是按照各个查询给定的顺序逐个比较各列。 执行以下查询: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
insert 表 select '01','A01',80
union all select '01','A02',75
union all select '01','A03',82
union all select '02','B01',85
union all select '02','B02',86
union all select '02','B03',92
go
要前后的字段類型一樣才可以。
但是union 和union all不同的在于就是union 刪除重復的記錄。
而union all是所有的。
select a,b,c from table1
union
select a,b,c from table2
用union 沒有重復記錄。
union all有可能有就是所的