ID Name Address Birthdate
1 Steven NULL 1982-01-23
2 Andrew 2 Katherine St 1979-10-06
3 Andrew 81 South Rd NULL
在上面的表中,如果我在文本框中輸入安德魯我想要獲取數據與ID號= 3。如何做呢?如果多行具有相同的名稱值,返回最高ID值
ID Name Address Birthdate
1 Steven NULL 1982-01-23
2 Andrew 2 Katherine St 1979-10-06
3 Andrew 81 South Rd NULL
在上面的表中,如果我在文本框中輸入安德魯我想要獲取數據與ID號= 3。如何做呢?如果多行具有相同的名稱值,返回最高ID值
所有獨特的名字:
;WITH cte AS
(
SELECT ID, Name, Address, Birthdate,
rn = ROW_NUMBER() OVER (PARTITION BY Name ORDER BY ID DESC)
FROM dbo.tablename
)
SELECT ID, Name, Address, Birthdate
FROM cte
WHERE rn = 1;
對於只有一個:
SELECT TOP (1) ID, Name, Address, Birthdate
FROM dbo.tablename
WHERE Name = 'Andrew'
ORDER BY ID DESC;
declare @name varchar(100) = 'Andrew'
select top 1 *
from MyTable
where Name = @name
order by ID desc
如果OP想要的名稱,地址,生日等除了ID? –
你說得對。我讀到他只想獲得最高的ID,我的不好。 :)在這種情況下,我會回答你的答案。 –