亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在一列上選擇DISTINCT

在一列上選擇DISTINCT

繁花不似錦 2019-08-24 18:14:07
在一列上選擇DISTINCT使用SQL Server,我有......ID  SKU     PRODUCT=======================1   FOO-23  Orange2   BAR-23  Orange3   FOO-24  Apple4   FOO-25  Orange我想要1   FOO-23  Orange3   FOO-24  Apple這個問題不是讓我在那里。如何在一列上選擇DISTINCT?SELECT [ID],[SKU],[PRODUCT]FROM [TestData] WHERE ([PRODUCT] = (SELECT DISTINCT [PRODUCT] FROM [TestData] WHERE ([SKU] LIKE 'FOO-%')) ORDER BY [ID]
查看完整描述

3 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

假設您使用的是SQL Server 2005或更高版本,則可以使用帶有ROW_NUMBER()的CTE:

SELECT  *FROM    (SELECT ID, SKU, Product,
                ROW_NUMBER() OVER (PARTITION BY PRODUCT ORDER BY ID) AS RowNumber         FROM   MyTable         WHERE  SKU LIKE 'FOO%') AS aWHERE   a.RowNumber = 1


查看完整回答
反對 回復 2019-08-24
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

這是一個版本,基本上與其他幾個答案相同,但是您可以將粘貼復制到SQL Server Management Studio中進行測試(并且不會生成任何不需要的表),這要歸功于一些內聯值。

WITH [TestData]([ID],[SKU],[PRODUCT]) AS(
    SELECT *
    FROM (
        VALUES
        (1,   'FOO-23',  'Orange'),
        (2,   'BAR-23',  'Orange'),
        (3,   'FOO-24',  'Apple'),
        (4,   'FOO-25',  'Orange')
    )
    AS [TestData]([ID],[SKU],[PRODUCT]))SELECT * FROM [TestData] WHERE [ID] IN (
    SELECT MIN([ID]) 
    FROM [TestData] 
    GROUP BY [PRODUCT])

結果

ID  SKU     PRODUCT1   FOO-23  Orange3   FOO-24  Apple

我忽略了以下......

WHERE ([SKU] LIKE 'FOO-%')

作為作者唯一的錯誤代碼部分而不是問題的一部分。對于看這里的人來說,它不太可能有用。


查看完整回答
反對 回復 2019-08-24
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

試試這個:

SELECT * FROM [TestData] WHERE Id IN(SELECT DISTINCT MIN(Id) FROM [TestData] GROUP BY Product)   


查看完整回答
反對 回復 2019-08-24
  • 3 回答
  • 0 關注
  • 636 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號