当前位置: 首页 > 面试题库 >

结合varchar列和int列

司马宏邈
2023-03-14
问题内容

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

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

select fooId + ' ' + fooName as fooEntity
from mytable

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

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

SQL Server 2008

(我有点SQL初学者)


问题答案:

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

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

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

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

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

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

SELECT fooid || ' ' || fooname

对于 MySQL ,可以使用CONCAT函数

SELECT CONCAT(fooid, ' ', fooname)


 类似资料:
  • 问题内容: 对于以下值: 为什么会出现此错误? 消息248,级别16,状态1,过程USP_CRE_WEB_MEMBER_AUTOGENERATEDECV,行136 varchar值‘08041159620’的转换溢出了int列。 问题答案: 谢谢拉维和其他用户....尽管如此,我已经找到了解决方案 只需输入“ 0”而不是0

  • 问题内容: 我在下面的查询中,需要转换为 架构图 我尝试了什么 但它们不起作用。请提出建议。 问题答案: 您将需要或作为数据类型,没有可以将数据强制转换/转换为以下数据的数据类型: 请参阅下面的SQL(实际上)在SQL Fiddle中 : 除了您试图转换为不正确的数据类型外,您所使用的语法也不正确。该函数使用以下列或值: 要么 您的原始查询的语法向后。

  • 问题内容: 我当前的数据 是 我已经尝试了所有四个查询,但都没有工作。(参考) 全部抛出语法错误,如下所示: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’)AS INT FROM PRODUCT LIMIT 0,30’附近使用正确的语法 您的SQL语法有误;在第1行的“ INTEGER)FROM PRODUCT LIMIT 0,30”附近检查与您的MySQL服务器

  • 我得当前数据 是 我试过了所有的四个查询,没有一个奏效。(参考) 所有抛出的语法错误如下所示: 您的SQL语法有错误;查看与您的MySQL server版本相对应的手册,以了解在第1行使用“PRODUCT LIMIT 0,30”中的near')AS INT的正确语法 您的SQL语法有错误;查看与您的MySQL server版本相对应的手册,以了解在第1行“Integer)FROM PRODUCT

  • 问题内容: 我目前正在大型数据库的某些表中启用UTF-8字符。这些表已经是MS-SQL类型NVARCHAR。另外,我也有几个使用VARCHAR的字段。 Hibernate与JDBC驱动程序的交互存在一个众所周知的问题。简而言之,Hibernate / JDBC生成的SQL会将所有字符串作为Unicode传递,而不管底层的SQL类型如何。将数据库中的非unicode(varchar)字段与Unico