sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan sammenligner man softwareversioner ved hjælp af SQL Server?

declare @v1 varchar(100) = '5.12'
declare @v2 varchar(100) = '5.8'

select 
    case 
    when CONVERT(int, LEFT(@v1, CHARINDEX('.', @v1)-1)) < CONVERT(int, LEFT(@v2, CHARINDEX('.', @v2)-1)) then 'v2 is newer'
    when CONVERT(int, LEFT(@v1, CHARINDEX('.', @v1)-1)) > CONVERT(int, LEFT(@v2, CHARINDEX('.', @v2)-1)) then 'v1 is newer'
    when CONVERT(int, substring(@v1, CHARINDEX('.', @v1)+1, LEN(@v1))) < CONVERT(int, substring(@v2, CHARINDEX('.', @v2)+1, LEN(@v1))) then 'v2 is newer'
    when CONVERT(int, substring(@v1, CHARINDEX('.', @v1)+1, LEN(@v1))) > CONVERT(int, substring(@v2, CHARINDEX('.', @v2)+1, LEN(@v1))) then 'v1 is newer'
    else 'same!'

    end


  1. Tilføj dage til en dato i SQLite

  2. Brug af Hibernate-forespørgsel:kolon bliver behandlet som parameter / escapende kolon

  3. Hvorfor giver mysqli en Kommandoer ude af synkroniseringsfejl?

  4. mysql_fetch_row() vs mysql_fetch_assoc() vs mysql_fetch_array()