TSQL——在SSMS中一行上显示两个查询的结果
我使用的是TSQL,SSMS v.17.9.1。底层数据库是Microsoft SQL Server 2014 SP3 出于显示目的,我希望连接两个查询的结果:TSQL——在SSMS中一行上显示两个查询的结果,tsql,ssms,resultset,display,recordset,Tsql,Ssms,Resultset,Display,Recordset,我使用的是TSQL,SSMS v.17.9.1。底层数据库是Microsoft SQL Server 2014 SP3 出于显示目的,我希望连接两个查询的结果: SELECT TOP 1 colA as 'myCol1' FROM tableA -- SELECT TOP 1 colB as 'myCol2' FROM tableB 并在SSMS中的一行中显示查询结果。 (TOP 1指令有望保证每个查询的结果数相同,这将有助于将它们显示在一起。如果这可以推广到每个查询的前10个,这也会有所帮
SELECT TOP 1 colA as 'myCol1' FROM tableA
--
SELECT TOP 1 colB as 'myCol2' FROM tableB
并在SSMS中的一行中显示查询结果。
(TOP 1指令有望保证每个查询的结果数相同,这将有助于将它们显示在一起。如果这可以推广到每个查询的前10个,这也会有所帮助)这应该适用于任意数量的行,它假设您希望按显示列中的值进行配对
With
TableA_CTE AS
(
SELECT TOP 1 colA as myCol1
,Row_Number() OVER (ORDER BY ColA DESC) AS RowOrder
FROM tableA
),
TableB_CTE AS
(
SELECT TOP 1 colB as myCol2
,Row_Number() OVER (ORDER BY ColB DESC) AS RowOrder
FROM tableB
)
SELECT A.myCol1, B.MyCol2
FROM TableA_CTE AS A
INNER JOIN TableB_CTE AS B
ON A.RowOrder = B.RowOrder
这应该适用于任意数量的行,它假定您希望按显示列中的值进行配对排序
With
TableA_CTE AS
(
SELECT TOP 1 colA as myCol1
,Row_Number() OVER (ORDER BY ColA DESC) AS RowOrder
FROM tableA
),
TableB_CTE AS
(
SELECT TOP 1 colB as myCol2
,Row_Number() OVER (ORDER BY ColB DESC) AS RowOrder
FROM tableB
)
SELECT A.myCol1, B.MyCol2
FROM TableA_CTE AS A
INNER JOIN TableB_CTE AS B
ON A.RowOrder = B.RowOrder
目前公认的答案有两个问题: 一) “表B As”行前缺少逗号 二) TSQL似乎发现它在编写时是递归的,所以我以非递归的方式重新编写了它: 这是对T-SQL中实际有效的公认答案的重新处理:
USE [Database_1];
With
CTE_A AS
(
SELECT TOP 1 [Col1] as myCol1
,Row_Number() OVER (ORDER BY [Col2] desc) AS RowOrder
FROM [TableA]
)
,
CTE_B AS
(
SELECT TOP 1 [Col2] as myCol2
,Row_Number() OVER (ORDER BY [Col2] desc) AS RowOrder
FROM [TableB]
)
SELECT A.myCol1, B.myCol2
FROM CTE_A AS A
INNER JOIN CTE_B AS B
ON ( A.RowOrder = B.RowOrder)
目前公认的答案有两个问题: 一) “表B As”行前缺少逗号 二) TSQL似乎发现它在编写时是递归的,所以我以非递归的方式重新编写了它: 这是对T-SQL中实际有效的公认答案的重新处理:
USE [Database_1];
With
CTE_A AS
(
SELECT TOP 1 [Col1] as myCol1
,Row_Number() OVER (ORDER BY [Col2] desc) AS RowOrder
FROM [TableA]
)
,
CTE_B AS
(
SELECT TOP 1 [Col2] as myCol2
,Row_Number() OVER (ORDER BY [Col2] desc) AS RowOrder
FROM [TableB]
)
SELECT A.myCol1, B.myCol2
FROM CTE_A AS A
INNER JOIN CTE_B AS B
ON ( A.RowOrder = B.RowOrder)
您是否搜索了
[tsql]连接
?使用子查询而不是union
,可以在一行中获取结果。是否搜索了[tsql]concatenate
?使用子查询,而不是union
,可以在一行中获得结果。感谢您突出显示问题,我已更正,但保留您的答案。您也应该投票。感谢您突出显示问题,我已更正,但保留您的答案。您也应该投票。