admin

结合varchar列和int列

sql

我在SQL表中有两列,即fooId(int)和fooName(varchar)。

有没有一种方法可以将它们都选择为一列并在它们之间留一个空格?

select fooId + ' ' + fooName as fooEntity
from mytable

它们是不同的类型,所以我遇到了错误。

该字段将直接在Web应用程序的控件中进行数据绑定。

SQL Server 2008

(我有点SQL初学者)


阅读 167

收藏
2021-05-10

共1个答案

admin

字符串串联在数据库之间是不同的,因此它有助于了解哪个数据库,因为您需要了解:

  1. 串联方法/运算符
  2. 如果数据库处理隐式数据类型转换

SQL Server 不会将数字隐式转换为字符串值:

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

…因此您需要使用CAST(或CONVERT)将数据类型显式更改为基于文本的数据类型。

对于 Oracle和PostgreSQL ,请使用双管道连接字符串:

SELECT fooid || ' ' || fooname

对于 MySQL ,可以使用CONCAT函数

SELECT CONCAT(fooid, ' ', fooname)
2021-05-10