Объедините varchar столбец с международным столбцом

У меня есть два столбца в таблице SQL, fooId (интервал) и fooName (varchar).

Существует ли способ выбрать их обоих как один столбец с пространством между ними?

select fooId + ' ' + fooName as fooEntity
from mytable

Они - различные типы, таким образом, я получаю ошибку.

Это поле будет связано с данными непосредственно в управлении в веб-приложении.

SQL Server 2008

(Я - немного sql новичок),

26
задан marc_s 30 June 2010 в 16:13
поделиться

4 ответа

Конкатенация строк в разных базах данных различается, поэтому полезно знать, какая база данных нужна:

  1. Метод / оператор конкатенации
  2. Если база данных обрабатывает неявное преобразование типов данных

SQL Server не выполняет неявное преобразование числовых значений в строковые:

SELECT CAST(fooid AS VARCHAR(10)) + ' ' + fooname

... поэтому вам нужно использовать CAST (или CONVERT) , чтобы явно изменить тип данных на текстовый тип данных.

Для Oracle и PostgreSQL используйте двойной канал для объединения строк:

SELECT fooid || ' ' || fooname

Для MySQL вы можете использовать функцию CONCAT :

SELECT CONCAT(fooid, ' ', fooname)
36
ответ дан 28 November 2019 в 07:31
поделиться

Я не уверен, что это стандартный SQL, но PostgreSQL использует оператор || для конкатенации строк. + означает числовое сложение.

0
ответ дан 28 November 2019 в 07:31
поделиться

Попробуйте следующее:

SELECT Convert( foold, SQL_CHAR ) + ' ' + fooName FROM mytable

или

SELECT Cast( foold AS SQL_CHAR(10) ) + ' ' + fooName FROM mytable
2
ответ дан 28 November 2019 в 07:31
поделиться

Да, это должно быть нормально, если только связанное поле является строкой.

Какую ошибку вы получаете?

0
ответ дан 28 November 2019 в 07:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: