Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Слить два столбца  [new]
панасоник
Guest
Таблица такая:
Code_M(bigint), Code_Auto(bigint), Name(varchar)
1243245 | 7562345634 | MAN
1534678 | 4653465878 | KAMAZ
2334686 | 7763465479 | VOLVO
-
Как сделать выборку вида:
1243245.7562345634 | MAN
1534678.4653465878 | KAMAZ
2334686.7763465479 | VOLVO
-
т.е. хочу объединить два столбца последовательно через точку в один.

делаю:
select (Code_M+'.'+Code_Auto) as Nomer_AU, god
from table1

ошибка:
Msg 8114, Level 16, State 5, Line 1
Ошибка при преобразовании типа данных varchar к bigint.

делаю:
select (CAST(Code_M) as varchar(50)+'.'+CAST(Code_Auto) as varchar(50)) as Nomer_AU, Name
from table1

ошибка:
Msg 1035, Level 15, State 10, Line 1
Неправильный синтаксис около "CAST", ожидалось "AS".

Есть предположение, что делаю совершенно не то:)
Запутался, прошу вашей помощи, в каком направлении двигаться?
1 июл 13, 15:44    [14505804]     Ответить | Цитировать Сообщить модератору
 Re: Слить два столбца  [new]
Glory
Member

Откуда:
Сообщений: 104751
панасоник
Msg 1035, Level 15, State 10, Line 1
Неправильный синтаксис около "CAST", ожидалось "AS".

Ну скобки - это тоже синтаксис. Не надо ставить их там, где вам хочется
1 июл 13, 15:46    [14505813]     Ответить | Цитировать Сообщить модератору
 Re: Слить два столбца  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
панасоник,

перенести правые скобки CAST за типы.
1 июл 13, 15:46    [14505816]     Ответить | Цитировать Сообщить модератору
 Re: Слить два столбца  [new]
панасоник
Guest
Ой, прошу прощения немного опечатлся

1. Способ:
select (Code_M+'.'+Code_Auto) as Nomer_AU, Name
from table1

Msg 8114, Level 16, State 5, Line 1
Ошибка при преобразовании типа данных varchar к bigint.
1 июл 13, 15:47    [14505819]     Ответить | Цитировать Сообщить модератору
 Re: Слить два столбца  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
панасоник,

select (CAST(Code_M as varchar(50))+'.'+CAST(Code_Auto as varchar(50)) ) as Nomer_AU, 1 as Name
1 июл 13, 15:52    [14505842]     Ответить | Цитировать Сообщить модератору
 Re: Слить два столбца  [new]
панасоник
Guest
select (CAST((Code_M) as varchar(50))+'.'+CAST((Code_Auto) as varchar(50))) as Name_AU, Name
from table1

Действительно, дело было в скобках. Огромное спасибо!
1 июл 13, 15:52    [14505844]     Ответить | Цитировать Сообщить модератору
 Re: Слить два столбца  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
StarikNavy
панасоник,

select (CAST(Code_M as varchar(50))+'.'+CAST(Code_Auto as varchar(50)) ) as Nomer_AU, 1 as Name
Во вторам CASTе лишняя скобка
1 июл 13, 15:54    [14505850]     Ответить | Цитировать Сообщить модератору
 Re: Слить два столбца  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
панасоник,
используйте CONVERT :) там никаких AS нет, и синтаксис понятнее, а делает то же самое
1 июл 13, 16:06    [14505928]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить