我有两张桌子
Name | Age
------------
a | 20
b | 15
Name | Age(varchar)
------------------
e | two
d | one
然后我要显示
Name | Age
-----------
b | 15
a | 20
e | two
d | one
怎么样?
答案 0 :(得分:1)
这可以通过Age
操作来完成,
但这些表的union all
列的数据类型似乎不同。
因此,如果您尝试Conversion failed when converting the varchar value 'two' to data type int
这些表格,则会收到错误消息;
age
因此,在table 1
之前将varchar
union
列的数据类型转换为select id, age from (
select id, convert(varchar(20), age) as age from tbl1
union all
select id, age from tbl2
) as x
order by age
union all
如果您对重复数据使用正常,则使用union
其他union
(order by age
会有额外的删除重复数据的开销)
注意:lexicographically
订单年龄{{1}}
答案 1 :(得分:0)
如@Matt在评论中所述,这看起来好像你想要执行UNION查询,请参阅msdn以获取有关执行UNION查询的说明。
SELECT *
FROM Table1
UNION
SELECT *
FROM Table2
修改:如果您想订购结果,则只需在查询中添加ORDER BY
关键字。
SELECT *
FROM Table1
UNION
SELECT *
FROM Table2
ORDER BY Name
答案 2 :(得分:0)
SELECT *
FROM Table1
UNION
SELECT *
FROM Table2
ORDER BY Name, Age;