sql >> Base de Datos >  >> RDS >> Sqlserver

Declaración de caso T-SQL en una cláusula JOIN ON

Está buscando IsNumeric pero no siempre funciona (+, - y . son numéricos), por lo que debe usar la solución descrito por GBN que es agregar .0e0 a su varchar

LEFT JOIN [CTSTRC] [Statuses] ON 
    (CASE WHEN ISNUMERIC(RIGHT([Statuses].[STRID], 3) + '.0e0) = 1 
          THEN  CAST(RIGHT([Statuses].[STRID], 3) AS INT) 
          ELSE 0  END) = [CTE].[F61]