Объединение столбца 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 использует оператор || для конкатенации строк. + означает числовое дополнение.