我正在寻找一种方法来选择joe的电子邮件地址,这样每次运行select查询时,我只会得到一个按ID顺序返回的电子邮件地址。有点圆罗宾的结果..
so on first select I get joe@blogs.com
and then second I get joe@gmail.com
and third joe@outlook.com
and next joe@blogs.com as there are only three entries
如果你知道我的意思。
addresses
---------------------
id|name|email
---------------------
1 |joe |joe@blogs.com
2 |joe |joe@gmail.com
3 |joe |joe@outlook.com
答案 0 :(得分:1)
试一试:
CREATE TABLE #results (id INT, name VARCHAR(50), email VARCHAR(100))
DECLARE @currentID INT;
WHILE(1 = 1)
BEGIN
SET @currentID =
(SELECT TOP 1 t.id
FROM [YOURTABLE] t
LEFT JOIN #results r
ON r.id = t.id
WHERE t.name = 'joe'
AND r.id IS NULL)
IF @currentID IS NULL
BREAK;
SELECT * FROM [YOURTABLE] WHERE id = @currentID
INSERT INTO #results
SELECT TOP 1 t.id, t.name, t.email
FROM [YOURTABLE] t
WHERE t.id = @currentID
END
答案 1 :(得分:0)
我认为最好的方法是将下一个电子邮件ID存储在具有用户外键的字段中。这将为您提供使用数据库之间的最大互操作性。
请注意,如果删除电子邮件,您将遇到问题。