Оператор регистра T-SQL в предложении JOIN ON

I я пытаюсь построить оператор case / if в предложении JOIN ON .

LEFT JOIN [CTSTRC] [Statuses] ON RIGHT([Statuses].[STRID], 3) = [CTE].[F61]

Проблема в том, что столбец [Статусы]. [STRID] содержит текст и числа. Столбец, который я сравниваю с [CTE]. [F61] является целым числом.

Есть ли способ определить, содержит ли столбец [Статусы]. [STRID] символ или число, а ЗАТЕМ установить его на 0, если это символ?

Вот псевдозапрос в помощь:

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

Может ли кто-нибудь указать мне правильное направление?

Спасибо!

6
задан marc_s 2 December 2011 в 19:20
поделиться