2011-04-19 176 views
1

这里是我的查询,在表中找到的一条记录:过滤掉字符串列

SELECT TOP 1 Tests.Release, Tests.Result FROM Tests WHERE 
    Tests.TestCaseID = 104209 
    ORDER BY Tests.Release 

Tests.Release是一列,方含字母数字值,使用数值比较运营商这没有可比性。我想根据一个已知的发布字符串和任何在该记录之上排序的内容过滤掉我的查询中的记录。如果该版本是字符串,我会写WHERE Tests.Release > 10。但是,我的版本是复杂的字符串,只能进行排序。根据要求

更新:

Release 
------- 
A1B 
A2B 
A3B---^ 
A4B 
A5B 

已知的版本是A3B。所以,我要去找我行内A2BA1B

+0

可以定义进一步'无论是那record'上述排序?它如何分类? – JNK 2011-04-19 20:08:53

+0

@JNK:更新。让我知道如果它仍然不清楚。 Thx – Pablo 2011-04-19 20:14:06

+1

@michael - 这是实际的示例数据吗?我问,因为这应该排序与定期不平等'<' '>'运营商。 – JNK 2011-04-19 20:18:26

回答

4

您仍然可以对字符串使用比较运算符。他们按照正常访问文本排序规则如下所述:http://support.microsoft.com/kb/129719

SELECT Tests.Release, Tests.Result 
FROM Tests 
WHERE Tests.TestCaseID = 104209 AND Tests.Release <='A1B2C2' 
ORDER BY Tests.Release 
0

如果您Tests.Release不会落入没有复杂的操作可排序列表的历史,我想补充一个时间戳列和日期由代替每个版本和排序。

+0

版本可能会按时间顺序添加。 – Pablo 2011-04-19 20:10:24

+0

排序的顺序非常好,可以过滤记录。 – Pablo 2011-04-19 20:16:10