2015-11-04 6 views
0

У меня есть DB Postgres с очень плохим дизайном схемы, я пытаюсь присоединиться к двум таблицам с идентификатором и полем, в котором есть идентификатор, но с несколькими символами в начале, как я могу присоединиться к ним?SQL JOIN ON # = chr #

например.

TABLE1 
------ 
Field name: ID 
Value: 1000 

TABLE2 
------ 
Field name: NUMBER 
Value: WO-1000 

поэтому в основном мне нужно сказать что-то вроде:

JOIN TABLE2 ON (TABLE1.ID = 'WO-' + TABLE2.NUMBER) 

Благодаря

ответ

1

Используйте || оператору concatenate два значения в Postgres. Попробуй это.

JOIN TABLE2 ON (TABLE1.ID = 'WO-' || TABLE2.NUMBER) 

Если Number столбец имеет Integer типа, то cast его text.

JOIN TABLE2 ON (TABLE1.ID = 'WO-' || cast(TABLE2.NUMBER as text)) --or TABLE2.NUMBER::text 

Проверить here для получения дополнительной информации

+0

Параметр '' || не является специфичным для Postgres - это то, что было определено в SQL стандарт 30 лет назад –

+0

@a_horse_with_no_name - Да, это стандартный SQL. Просто упомянул о своем пути к конкатенации :) –