(SQL Server)使用行计数对列表进行排序,但不需要列出行计数

时间:2014-02-27 08:11:39

标签: sql sql-server

需要列出select sql里面的所有列,除了row_number()之外,还有什么解决方法要消除到row_count?

SELECT *
FROM
  (SELECT Station,
          ROW_NUMBER() over (
                             ORDER BY totalseq ASC) AS rownumber1
   FROM [SFCKM].[dbo].[T_DB_Subline]
   WHERE Track_Point_No = '3d1')a
LEFT JOIN
  (SELECT group_no,
          trim_line,
          MSC,
          lot_no,
          color,
          AON,
          format(Commit_time,'MM/dd/yy h:mm:ss tt')AS time,
          datediff(DAY,Commit_Time,SYSDATETIME()) AS aging,
          ROW_NUMBER() over (
                             ORDER BY commit_time DESC) AS rownumber
   FROM [SFCKM].[dbo].[T_Work_Actual]
   WHERE Track_Point_No = '3d1') c ON a.rownumber1 = c.rownumber
ORDER BY a.rownumber1

2 个答案:

答案 0 :(得分:1)

您可以选择要查找的值,例如站和老化。

select a.Station, c.aging from                   
    (select Station, ROW_NUMBER() over (order by totalseq asc) AS rownumber1 
    from [SFCKM].[dbo].[T_DB_Subline] where Track_Point_No = '3d1') a
    left join
    (*,aging,ROW_NUMBER() over (order by commit_time desc) AS rownumber
    FROM [SFCKM].[dbo].[T_Work_Actual] where Track_Point_No = '3d1') c
on a.rownumber1 = c.rownumber
order by a.rownumber1

答案 1 :(得分:1)

不要使用SELECT *:仅指定所需的列。 SELECT *不是最佳做法,只是懒惰

根据我的回答SQL exclude a column using SELECT * [except columnA] FROM tableA?

,无法排除列