Различные типы столбцов на INNER JOIN - PullRequest
0 голосов
/ 30 сентября 2011

Итак, у меня есть две таблицы, на которые я буду ссылаться с помощью INNER JOIN.С одной стороны тип столбца Number(3, 0), а с другой - Varchar(150).Видя, что я НЕ могу изменить типы данных, я должен привести его к соединению.Но в таблице, где столбец varchar, строка всегда имеет 3 цифры, такие как «001», «010» или даже «100» и т. Д. *

Мое решениеиспользуйте Case в соединении следующим образом:

INNER JOIN TAB1 ON TAB1.VARCHAR_COL = Cast(Case...), AS Varchar(150)

Case должен отформатировать число в строку с префиксом цифр дерева, как упомянуто выше.Если данные поступают в виде «1», регистр должен быть отформатирован как «001», если в качестве «10» используется «010» ...

Помогите мне с Case.

Редактировать: В столбце varchar есть некоторые значения, которые не являются числами, поэтому приведение к нему показывает ошибку.

1 Ответ

3 голосов
/ 30 сентября 2011

Совсем не похоже на CASE.

TAB1.VARCHAR_COL = TO_CHAR( TAB2.NUMBER_COL, '000' )
...