Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да сравним версиите на софтуера с помощта на 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Въздействие върху производителността на винаги криптирани

  2. Какво е значението на SELECT ... FOR XML PATH(' ),1,1)?

  3. Вземете началната и крайната дата на седмицата от номера на седмицата

  4. Грешка при преобразуване на данни за групово зареждане (несъответствие на типа или невалиден знак за посочената кодова страница) за ред 1, колона 4 (Година)

  5. Създайте функция с таблично стойности с множество оператори (MSTVF) в SQL Server