Объединение столбца varchar со столбцом int
У меня есть два столбца в таблице SQL, fooId
(int) и fooName
(varchar).
Есть ли способ выбрать их как один столбец с пробелом между ними?
select fooId + ' ' + fooName as fooEntity
from mytable
Они разные, поэтому я получаю сообщение об ошибке.
Это поле будет привязано к базе данных непосредственно в элементе управления в веб-приложении.
SQL Server 2008
(Я немного начинаю sql)
Ответы
Ответ 1
Конкатенация строк различается между базами данных, поэтому помогает узнать, какая база данных вам нужна:
- Метод конкатенации/оператор
- Если база данных обрабатывает неявное преобразование типов данных
SQL Server не выполняет неявное преобразование числовых значений в строковые значения:
SELECT CAST(fooid AS VARCHAR(10)) + ' ' + fooname
... поэтому вам нужно использовать CAST (или CONVERT), чтобы явно изменить тип данных на текстовый тип данных.
Для Oracle и PostgreSQL используйте двойной канал для конкатенации строк:
SELECT fooid || ' ' || fooname
Для MySQL вы можете использовать функцию CONCAT:
SELECT CONCAT(fooid, ' ', fooname)
Ответ 2
Попробуйте следующее:
SELECT Convert( foold, SQL_CHAR ) + ' ' + fooName FROM mytable
или
SELECT Cast( foold AS SQL_CHAR(10) ) + ' ' + fooName FROM mytable
Ответ 3
Да, это должно быть ОК, пока связанное поле является строкой.
Какая ошибка вы получаете?
Ответ 4
Я не уверен, что это стандартный SQL, но PostgreSQL использует оператор ||
для конкатенации строк. +
означает числовое дополнение.