如何 select 与我的 table 不同的列?
How to select distinct column from my table?
我有两个 table 一起工作。第一个 table #CustomerList
我用值手动初始化。然后我在第一个 table #CustomerList
的基础上创建第二个 table #CustomerListWithRank_Id
。
第一个和第二个 table 之间的唯一区别是第二个 table #CustomerListWithRank_Id
有一列为每一行提供行号,我在 SQL 代码,当我循环遍历 table.
所以我遇到的问题是我只想用 [FileName] 列中的唯一值初始化 #CustomerListWithRank_Id
,我该怎么做?
SELECT '3004' Customer_No,'831001' DDD_Reference_No,'varer831.csv' [FileName]
INTO #CustomerList -- DROP TABLE #CustomerList
UNION ALL SELECT '3002' Customer_No,'199001' DDD_Reference_No,'varer199.csv' [FileName]
UNION ALL SELECT '3003' Customer_No,'199002' DDD_Reference_No,'varer199.csv' [FileName]
-
SELECT *, ROW_NUMBER() OVER (ORDER BY Customer_No) AS 'Rank_Id'
INTO #CustomerListWithRank_Id --DROP TABLE #CUstomerListWithRank_ID
FROM #CustomerList
如果我在上面的查询中使用 GROUP BY [FileName],我会得到这个错误:
Msg 8120, Level 16, State 1, Line 1
Column '#CustomerList.Customer_No' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
这是你需要的吗?
select *, ROW_NUMBER() OVER (ORDER BY Customer_No) AS 'Rank_Id'
INTO #CustomerListWithRank_Id
from
(
SELECT max(Customer_No) Customer_No, max(DDD_Reference_No) DDD_Reference_No, FileName
FROM #CustomerList
group by FileName
) t
这是你需要的吗
SELECT * INTO #CustomerListWithRank_Id From
(SELECT *, ROW_NUMBER() OVER (PARTITION BY FileName Order by Customer_No) AS RowNum FROM CustomerList)
我有两个 table 一起工作。第一个 table #CustomerList
我用值手动初始化。然后我在第一个 table #CustomerList
的基础上创建第二个 table #CustomerListWithRank_Id
。
第一个和第二个 table 之间的唯一区别是第二个 table #CustomerListWithRank_Id
有一列为每一行提供行号,我在 SQL 代码,当我循环遍历 table.
所以我遇到的问题是我只想用 [FileName] 列中的唯一值初始化 #CustomerListWithRank_Id
,我该怎么做?
SELECT '3004' Customer_No,'831001' DDD_Reference_No,'varer831.csv' [FileName]
INTO #CustomerList -- DROP TABLE #CustomerList
UNION ALL SELECT '3002' Customer_No,'199001' DDD_Reference_No,'varer199.csv' [FileName]
UNION ALL SELECT '3003' Customer_No,'199002' DDD_Reference_No,'varer199.csv' [FileName]
-
SELECT *, ROW_NUMBER() OVER (ORDER BY Customer_No) AS 'Rank_Id'
INTO #CustomerListWithRank_Id --DROP TABLE #CUstomerListWithRank_ID
FROM #CustomerList
如果我在上面的查询中使用 GROUP BY [FileName],我会得到这个错误:
Msg 8120, Level 16, State 1, Line 1
Column '#CustomerList.Customer_No' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
这是你需要的吗?
select *, ROW_NUMBER() OVER (ORDER BY Customer_No) AS 'Rank_Id'
INTO #CustomerListWithRank_Id
from
(
SELECT max(Customer_No) Customer_No, max(DDD_Reference_No) DDD_Reference_No, FileName
FROM #CustomerList
group by FileName
) t
这是你需要的吗
SELECT * INTO #CustomerListWithRank_Id From
(SELECT *, ROW_NUMBER() OVER (PARTITION BY FileName Order by Customer_No) AS RowNum FROM CustomerList)