我在SQL表中有两列fooId
(int)和fooName
(varchar)。
有没有办法选择它们作为一列,它们之间有空格?
select fooId + ' ' + fooName as fooEntity
from mytable
他们是不同的类型所以我收到了错误。
此字段将直接数据绑定在Web应用程序的控件中。
SQL Server 2008
(我有点像sql初学者)
答案 0 :(得分:35)
字符串连接在数据库之间是不同的,因此有助于知道哪个数据库,因为您需要知道:
SQL Server 不会将数字隐式转换为字符串值:
SELECT CAST(fooid AS VARCHAR(10)) + ' ' + fooname
...因此您需要使用CAST (or CONVERT)将数据类型显式更改为基于文本的数据类型。
Oracle& PostgreSQL ,使用双管连接字符串:
SELECT fooid || ' ' || fooname
对于 MySQL ,您可以使用CONCAT function:
SELECT CONCAT(fooid, ' ', fooname)
答案 1 :(得分:2)
试试这个:
SELECT Convert( foold, SQL_CHAR ) + ' ' + fooName FROM mytable
或
SELECT Cast( foold AS SQL_CHAR(10) ) + ' ' + fooName FROM mytable
答案 2 :(得分:0)
是的,只要绑定字段是字符串就可以了。
你得到的错误是什么?
答案 3 :(得分:0)
我不确定它是否是标准SQL,但PostgreSQL使用||
运算符进行字符串连接。 +
表示数字加法。
答案 4 :(得分:0)
我在MS SQL中使用此查询
SELECT varcharColumn + CONVERT(VARCHAR(2), intColumn) AS foo
假设varcharColumn为空
SELECT ISNULL(varcharColumn, '') + CONVERT(VARCHAR(2), intColumn) AS foo