我已经编写了一个SQL查询
select
a.beam_current,
*
from
INDUS2_MPS.dbo.main_mps_hs_analog b
inner join INDUS2_BDS.dbo.DCCT a on a.logtime=b.logtime
where
a.logtime BETWEEN '2014-10-10 07:17:00' AND '2014-10-10 08:47:00'
当我执行此查询时,我获得了所有必需的列。现在我想改变列的顺序。 INDUS2_MPS.dbo.main_mps_hs_analog的第一列,即logtime我想成为输出中的第一列,a.beam_current是第二列,然后是INDUS2_MPS.dbo.main_mps_hs_analog的其余列。
为了实现这一点,如何操纵我的上述查询???
答案 0 :(得分:1)
以上答案是正确的,只需按照您想要的顺序添加列。顺便说一句,在具有多个JOINed对象的查询中使用*意味着返回所有对象的所有列(a和b)。
INDUS2_MPS.dbo.main_mps_hs_analog的第一列,即logtime 然后应该遵循INDUS2_MPS.dbo.main_mps_hs_analog的其余列。
您可能想拼出每一列,否则如果您执行SELECT b.logtime,a.beam_current,b。* FROM ...它将返回logtime列两次。如果这是可以接受的,并且您不想键入200个列名称,那就去做吧。
答案 1 :(得分:1)
select
b.col1, a.col1, b.col2, b.col3, a.col10, b.col5+a.col69 -- list any columns in any order here
from
INDUS2_MPS.dbo.main_mps_hs_analog b
inner join INDUS2_BDS.dbo.DCCT a on a.logtime=b.logtime
where
a.logtime BETWEEN '2014-10-10 07:17:00' AND '2014-10-10 08:47:00'
答案 2 :(得分:0)
您可以在select query中为前两列提供不同的别名,然后从查询中选择所有列
select
b.logtime [fistCol],
a.beam_current [secondCol],
b.*
from
INDUS2_MPS.dbo.main_mps_hs_analog b
inner join INDUS2_BDS.dbo.DCCT a on a.logtime=b.logtime
where
a.logtime BETWEEN '2014-10-10 07:17:00' AND '2014-10-10 08:47:00'