2017-12-12 8 views
0

SQL Serverデータベースのversion列の情報をマップしようとしています。今、私たちはv1.x.x.x.xからv23.x.x.x.xに値を持っていると私はの線に沿って何か希望:SQL Server:列内の情報に基づいてデータをマッピングします。

case 
    when left(version,3) is v9. then 'v9', 
    when left(version,4) is v10. then 'v10', 
    when left(version,3) is between v1. and v8. then 'old' 
end as 'version' 

を、私はこのエラーを取得しています:

Incorrect syntax near the keyword 'then'

感謝を!ここで

+2

のようなもので、単純な引用符を配置しようであると考えて「V9」。 「v10」 – cmnardi

+3

私は文字列では動作しないと思う – cmnardi

答えて

0

declare @version varchar(10) = 'v2.tyt' 

SELECT CASE 
     WHEN Substring(@version, 2, Charindex('.', @version) - 2) <= 8 THEN 'old' 
     WHEN Substring(@version, 2, Charindex('.', @version) - 2) IN (9, 10) THEN 'v' + Substring(@version, 2, Charindex('.', @version)-2) 
     END 

注それを行うための正しい方法である:常にこれをデータの形式は、この

A character|any numeric value|.|anything 
関連する問題