Sql server 如何在sqlserver中获取不同的记录
但我需要得到如下结果:Sql server 如何在sqlserver中获取不同的记录,sql-server,sql-server-2008,distinct,Sql Server,Sql Server 2008,Distinct,但我需要得到如下结果: FUNDFAMILY_ID FUND_NAME REPORTSECTION_ID -------------------------------------------------------------- 172295295 VANGUARD GROWTH FUND (Retail) 126345 172295295 VANGUARD GROWTH FUND (Retail) 126354 ---
FUNDFAMILY_ID FUND_NAME REPORTSECTION_ID
--------------------------------------------------------------
172295295 VANGUARD GROWTH FUND (Retail) 126345
172295295 VANGUARD GROWTH FUND (Retail) 126354
--------------------------------------------------------------
在一个存储过程中,我有一个如下的查询,它给出了重复的行
FUNDFAMILY_ID FUND_NAME REPORTSECTION_ID
--------------------------------------------------------------
172295295 VANGUARD GROWTH FUND (Retail) 126345
DISTINCT关键字未给出正确的结果。请建议DISTINCT给出正确的结果,您指定的所有列的记录都是不同的。你想要什么?根据ID和描述是否唯一?您想从每组中选择另一个
ID
如果您只是想要一个任意值,您可以使用MIN
或MAX
和分组方式
:
INSERT INTO #TABLE_REPORTSECTIONDATA (FUND_NAME, FUNDFAMILY_ID, REPORTSECTION_ID)
SELECT DISTINCT @FUNDNAME_TEMP , @FUNDID_TEMP, EntryPointViewsId
FROM EntryPointViews EPV
ORDER BY EntryPointViewsId
DISTINCT将为您提供正确的结果,您指定的所有列的记录都是不同的。你想要什么?根据ID和描述是否唯一?您想从每组中选择另一个
ID
如果您只是想要一个任意值,您可以使用MIN
或MAX
和分组方式
:
INSERT INTO #TABLE_REPORTSECTIONDATA (FUND_NAME, FUNDFAMILY_ID, REPORTSECTION_ID)
SELECT DISTINCT @FUNDNAME_TEMP , @FUNDID_TEMP, EntryPointViewsId
FROM EntryPointViews EPV
ORDER BY EntryPointViewsId
我想您正在寻找带有分区的
ROW\u NUMBER()
,这个查询应该适合您:
SELECT ID, Description, MIN(AnotherID)
FROM EntryPointViews EPV
GROUP BY ID, Description
我想您正在寻找带有分区的
ROW\u NUMBER()
,这个查询应该适合您:
SELECT ID, Description, MIN(AnotherID)
FROM EntryPointViews EPV
GROUP BY ID, Description
这种行为和预期的一样。您将得到两行,因为这些行中的另一行不同。也许你的商业案例是获得最大值或最小值?否则,这将是正确的行为。您能提供详细信息吗?为什么您想要带有
126345
的记录,而不是带有126354
的记录?一次一条记录应该插入到数据库中。行为与预期相同。您将得到两行,因为这些行中的另一行不同。也许你的商业案例是获得最大值或最小值?否则,这将是正确的行为。你能提供详细信息吗?为什么你想要带有126345
的记录而不是带有126354
的记录?一次一条记录应该插入DB。为我工作谢谢@Tim为我工作谢谢@Tim