我试图使用以下查询从临时表中读取
select
a,b,c, result, sampleDate
from dbo.abc
where
a = @la and b = @lb and sampleDate > @lSampleDate and
resultType in ('sugar','salt','peppers')
我想要实现的是,一旦找到匹配的行,我想停止读取表格,删除刚读取的行并再次搜索表格,找到新值等等。
我知道如何在找到自己的价值观后停止它。 例如
tsampledate tResultType result
10/08/2005 cream 10.9
10/08/2005 sugar 10.0
10/08/2005 Salt 15.0
10/08/2005 peppers 20.0
21/10/2012 sugar 21.9
21/10/2012 salt 23
21/10/2012 peppers 19.3
所以我想用tSampleDate 10/08/2005阅读,打破循环再回到搜索。但循环继续阅读并给我所有的价值。
正在考虑SELECT CASE,但无法弄清楚如何实现。 请帮助。
答案 0 :(得分:0)
正确的事情是
delete
from dbo.abc
where
a = @la and b=@lb and sampleDate > @lSampleDate and
resultType in ('sugar','salt','peppers')
答案 1 :(得分:0)
假设您正在寻找满足sampleDate>的第一场比赛; @lSampleDate和..
即'10 / 08/2005'然后试试这个
SELECT a,b,c, result, sampleDate
FROM
(
select
a,b,c, result, sampleDate
,DENSE_RANK() OVER(ORDER BY sampleDate) AS rnk
from dbo.abc
where
a = @la and b = @lb and sampleDate > @lSampleDate and
resultType in ('sugar','salt','peppers')
) t
WHERE rnk=1
检查此排名功能DENSE_RANK