2013-04-18 105 views
0

我有一個包含數字和字母組合的字符串。它看起來像1A,10C,15A等。我有一個case語句,它根據數字和字母組合將相對值應用於此數字。聲明如下:查找字符串中的任何字母SQL Server 2008 R2

When [Page] like '%[A-Z]' then left([Page],1)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01) 

這個偉大的工程,當頁面數部分小於10爲1A的情況下,但是當你在10C和15A,它們應分別10.02和15.01。基本上我想用charindex在左邊的長度因子中找到[A-Z]。

有沒有人做過這樣的事情?

回答

2
When [Page] like '[0-9][A-Z]' then left([Page],1)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01) 
When [Page] like '[0-9][0-9][A-Z]' then left([Page],2)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01) 
When [Page] like '[0-9][0-9][0-9][A-Z]' then left([Page],3)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01) 

+0

理查德這是一個極好的東西。我已經將它擴展爲一種我認爲不可能的新配置。該代碼很容易適應。非常感謝! – 2013-04-18 18:18:19

1

試試這個

When PATINDEX('%[A-Z]%', [Page]) > 0 
then left([Page],PATINDEX('%[A-Z]%', [Page])-1)+((ASCII(convert(varchar,(RIGHT([Page],1))))-64)*.01) 
相關問題