2011-04-19 220 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