2013-11-26 5 views
0

Я пытаюсь написать запрос соединения. Таблица А имеет первичный ключ = 123456000000 и таблица B имеет внешний ключ = 123456.Как использовать + в sql sever

Я хочу знать, как я могу присоединиться к 2 таблицы, используя внутреннее соединение с помощью + в запросе

Я написал следующее -

SELECT RAP.COL1, FRE.COL2 FROM Table 1 AS RAP 
INNER JOIN Table 2 AS FRE 
ON RAP.COL1+'000000' = FRE.COL2 

NOTE - COL2 = 123456000000 
COL1 = 123456 

Мне НУЖНО ДОБАВИТЬ 000000, чтобы я мог присоединиться. НО ВЫШЕ НАПИСАНО НЕ РАБОТАЕТ :(

Пожалуйста, помогите Приветствия OZ

+0

Я думаю, что вам нужно для преобразования RAP.COL1 в varchar, если вы хотите объединить строки. –

+0

Каков тип данных этих двух столбцов? Как они могут иметь отношение, когда данные в PK и в столбцах FK различаются? – Raj

+0

Thes e - это в основном деловые идентификаторы для сделок. только 000000 добавляется как дополнительный целочисленный остаток 123456 является идентификатором сделки. – Proud2bOZ

ответ

2

Попробуйте это, но почему ключи различны. Любая конкретная причина.

SELECT RAP.COL1, FRE.COL2 FROM Table 1 AS RAP 
INNER JOIN Table 2 AS FRE 
ON (Convert(varchar(20),RAP.COL1)+'000000')as COL1 = FRE.COL2 
+0

Большое спасибо. работает отлично. – Proud2bOZ

+0

Пожалуйста: если вы используете 'varchar' (в качестве параметра или в инструкции' CONVERT'), пожалуйста, *** ВСЕГДА *** определите длину! Используйте 'CONVERT (VARCHAR (20), RAP.COL1)' вместо того, что у вас есть прямо сейчас ... –

+1

@marc_s, спасибо, я обычно использую длину данных, но пропущен здесь. Обновлено !!! –

0
SELECT RAP.COL1, FRE.COL2 FROM Table 1 AS RAP 
INNER JOIN Table 2 AS FRE 
ON RAP.COL1 = LEFT(FRE.COL2,6) 
Смежные вопросы