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