说我有以下数据库:
id name value other
1 Dave 340 otherinfo
2 Dave 340 otherinfo
3 Mike 350 otherinfo
我只想要具有唯一名称AND值的行,所以我使用这个sql语句:
SELECT DISTINCT 'name', 'value' from TABLE
不,我得到了我想要的行(1和3),但我无法访问其他列。 所以$ row [name]和$ row [value]给我我选择的信息,但是例如$ row [other]给出NULL。如何选择这些列呢?
答案 0 :(得分:0)
您可以使用派生表
DECLARE @thetable TABLE (id int, [name] varchar(100), [values] int, other varchar(100))
INSERT INTO @thetable VALUES (1, 'Dave', 340, 'otherinfo'), (2, 'Dave', 340, 'otherinfo'), (3, 'Mike', 350, 'otherinfo')
SELECT TT.*
FROM (
SELECT MIN(id) [minID] --take the minID by name, values
, [name], [values]
FROM @thetable
GROUP BY [name], [values]
) AS dT INNER JOIN @thetable TT ON dT.minID = TT.id
--rejoin the derived output by minID = @thetable.id
产地:
id name values other
1 Dave 340 otherinfo
3 Mike 350 otherinfo