Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
маленький такой вопросик:

можно ли объединить данные возвращаемых столбцов, что бы результаты выборки возвращались в одном столбце?

MS SQL 2005 или 2008.
2 мар 12, 13:34    [12183031]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Glory
Member

Откуда:
Сообщений: 104760
изучить конструкцию UNION (ALL)
2 мар 12, 13:35    [12183043]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Glory,

да нет, вы не поняли, таблица одна, допустим 3 столбца, надо, что бы возвращал один столбец, где содержаться все данные этих трех столбцов (что то типа аналога "Объединение ячеек" в excel
2 мар 12, 13:41    [12183103]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Glory
Member

Откуда:
Сообщений: 104760
+
2 мар 12, 13:41    [12183108]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Glory,

что значит "+"?

в Oracle для объединения используются ||, а в MS SQL это не работает....
2 мар 12, 13:44    [12183133]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ёжик25
в Oracle для объединения используются ||, а в MS SQL это не работает....

Потому что +
2 мар 12, 13:44    [12183140]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Glory,

Т.е. вы хотите сказать, что запрос select name + surname from FIO будет выдавать один столбец?

так вот: не работает

возвращает: Error converting data type varchar to numeric.
2 мар 12, 13:46    [12183167]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Ёжик25,

данные не числовые!
2 мар 12, 13:47    [12183175]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ёжик25
данные не числовые!

Да конечно, сервер врет нагло

select 'aaaa'+'ddddd'
go
select 'aaaa'+1
go
2 мар 12, 13:48    [12183190]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Freeze729
Member

Откуда:
Сообщений: 161
Что-то вроде этого не прокатывает?
select field1+'  '+field2 as res
2 мар 12, 13:51    [12183216]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Freeze729,

нет, не прокатывает
2 мар 12, 13:56    [12183255]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Ёжик25
Ёжик25,

данные не числовые!
Перешли на числовые фамилии? Или имена?
Оригинально!
2 мар 12, 13:56    [12183257]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ёжик25
нет, не прокатывает

Все столбцы должны быть символьного типа
2 мар 12, 13:57    [12183265]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Glory
Ёжик25
данные не числовые!

Да конечно, сервер врет нагло

select 'aaaa'+'ddddd'
go
select 'aaaa'+1
go


это кстати тоже не прокатывает

запрос select 'name'+'sername' from FIO не работает, веренее выдает таблицы действительно с одним столбцов, но во всех строках написано namesername, а не те данные, которые в таблице (фамилия и имя)
2 мар 12, 13:58    [12183274]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Glory,

вот, наконечно мне ответили, а если типы разные? вот разные и все тут.... с именами и фамилиями я написал как пример, а если мне надо наприме первый столбец - фамилия, а второй - цифра какая нибудь?
2 мар 12, 14:00    [12183289]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
что бы в результате было в каждой строке: Иванов 350, например
2 мар 12, 14:00    [12183300]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Ёжик25
Glory
пропущено...

Да конечно, сервер врет нагло

select 'aaaa'+'ddddd'
go
select 'aaaa'+1
go


это кстати тоже не прокатывает

запрос select 'name'+'sername' from FIO не работает, веренее выдает таблицы действительно с одним столбцов, но во всех строках написано namesername, а не те данные, которые в таблице (фамилия и имя)
В какой ещё таблице?!
Вы, кажется, говорили о какой-то таблице?

P.S. Правила форума рекомендуют запостить скрипт CREATE TABLE хотя бы...
2 мар 12, 14:01    [12183303]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> вот, наконечно мне ответили, а если типы разные? вот разные и все тут.... с именами и фамилиями я написал как пример, а
> если мне надо наприме первый столбец - фамилия, а второй - цифра какая нибудь?

приведение типов делается функциями cast/convert

Posted via ActualForum NNTP Server 1.5

2 мар 12, 14:01    [12183310]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ёжик25
вот, наконечно мне ответили, а если типы разные? вот разные и все тут.... с именами и фамилиями я написал как пример, а если мне надо наприме первый столбец - фамилия, а второй - цифра какая нибудь?

Вы знакомы с таким понятием программирование как приведение типов данных ?

Ёжик25
это кстати тоже не прокатывает

запрос select 'name'+'sername' from FIO не работает,

Зачем изменять правильный пример на неправильный и удивляться, что он не работает ?

Сообщение было отредактировано: 2 мар 12, 14:04
2 мар 12, 14:03    [12183329]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Glory,

без приведения, без конвертации, а также без создания дополнительных промежуточных таблиц или вьюшек. Просто банальное объединение столбцов? если это невозможно в MS SQL как в Oracle (с помощью ||), и надо "обходными путями" к этому прийти (с помощью подзапросов, функций и прочего), так бы и написали. Я поэтому и написал вначале "маленький вопросик" - мне надо было знать если ли такая возможность на элементарном уровне объединить столбцы....
2 мар 12, 14:19    [12183437]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ёжик25
без приведения, без конвертации, а также без создания дополнительных промежуточных таблиц или вьюшек. Просто банальное объединение столбцов? если это невозможно в MS SQL как в Oracle (с помощью ||), и надо "обходными путями" к этому прийти (с помощью подзапросов, функций и прочего), так бы и написали. Я поэтому и написал вначале "маленький вопросик" - мне надо было знать если ли такая возможность на элементарном уровне объединить столбцы....

Не пытайтесь переделать MSSQL в Oracle
Лучше потратьте это время на изучение документации.
2 мар 12, 14:23    [12183483]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
Ёжик25
Member

Откуда: оттуда
Сообщений: 360
Glory,


Ладно короче. всем спасибо, тема закрыта!
2 мар 12, 14:24    [12183492]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Ёжик25
Glory,

без приведения, без конвертации, а также без создания дополнительных промежуточных таблиц или вьюшек. Просто банальное объединение столбцов? если это невозможно в MS SQL как в Oracle (с помощью ||), и надо "обходными путями" к этому прийти (с помощью подзапросов, функций и прочего), так бы и написали. Я поэтому и написал вначале "маленький вопросик" - мне надо было знать если ли такая возможность на элементарном уровне объединить столбцы....
Приоритет типов данных (Transact-SQL)
2 мар 12, 14:26    [12183509]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов в один  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
Ёжик25
без приведения, без конвертации, а также без создания дополнительных промежуточных таблиц или вьюшек. Просто банальное объединение столбцов? если это невозможно в MS SQL как в Oracle (с помощью ||)
В оракле это тоже делается конвертацией, для неё тоже есть свои правила.

Там же не получается в итоге столбец с 2-мя типами данных.

И в С++ тоже есть свои правила, и в экселе.

Если вы применяете новый язык программирования, нужно его просто изучить, других вариантов нет. Синтаксис оракла и аксеса не такой, как синтаксис С++ и T-SQL, это нужно просто принять как данность.
2 мар 12, 18:29    [12185671]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Объединение столбцов в один  [new]
Бобер_полоскун
Guest
Пример для того чтобы понять:
Есть таблица Contracts :
ID_Contract | Contract | Date_contract
типы соответственно:
int |Varchar(30)| date
Для того чтобы в выборке значения двух столбцов например Contract и Date_Contract записать в один например Result используем следующий запрос:
SELECT Contract + ' от ' + CONVERT(Varchar(30),Date_contract,104) as Result from Contracts

результат в одном столбце получишь ты вида вот такого:

Контракт от 01.01.2001

А имя столбца в выборке будет Result.
8 июн 14, 19:47    [16139170]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить