Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Instrução T-SQL Case em uma cláusula JOIN ON


Você está procurando por IsNumeric, mas nem sempre funciona (+,- e . são numéricos), então você precisa usar a solução descrito por GBN que é adicionar .0e0 ao seu 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]