This is an example to detect Windows version from TSQL query

DECLARE @msver TABLE (t_index NVARCHAR(100), t_name NVARCHAR(100), t_ivalue NVARCHAR(100), t_cvalue NVARCHAR(100));
INSERT INTO @msver EXEC xp_msver 'WindowsVersion';

DECLARE @OSVersion VARCHAR(MAX)
DECLARE @LPOS INT
DECLARE @RPOS INT
SELECT @OSVersion = t_cvalue FROM @msver WHERE t_name = 'WindowsVersion'
SET @LPOS = CHARINDEX('(', @OSVersion) + 1
SET @RPOS = CHARINDEX(')', @OSVersion) 
SELECT @OSVersion = SUBSTRING(@OSVersion, @LPOS, @RPOS-@LPOS)
SELECT CASE
  WHEN @OSVersion = 17763 THEN 'Windows Server 2019'
  WHEN @OSVersion = 14393 THEN 'Windows Server 2016'
  WHEN @OSVersion = 9600  THEN 'Windows Server 2012 R2'
  WHEN @OSVersion = 9200  THEN 'Windows Server 2012'
  WHEN @OSVersion = 7601  THEN 'Windows Server 2008 R2'
  WHEN @OSVersion = 6003  THEN 'Windows Server 2008'
  ELSE 'No OS detected'
END AS [Version]