由于某些原因,我无法将sql表中的名字和姓氏结合在一起。
这是我尝试过的:
SELECT firstname, lastname, firstname + ' ' + lastname as fullname from students;
Run Code Online (Sandbox Code Playgroud)
出于某种原因,它在全名下的每一行的结果“ 0”中显示,但是按正常方式填充了firstname和lastname列。
请帮忙。***请注意,我不想使用CONCAT()函数
屏幕截图在这里: table
提前致谢
您正在尝试添加两个字符串。那没有道理。尽管有些数据库过载(考虑到SQL Server是基于Sybase的,实际上是一种)导致数据库+串联,但正确的方法是:
concat(firstname, ' ', lastname) as fullname
Run Code Online (Sandbox Code Playgroud)
或者我喜欢,因为它可以NULL干净地处理值:
concat_ws(' ', firstname, lastname) as fullname
Run Code Online (Sandbox Code Playgroud)
或在支持ISO / ANSI运算符的数据库中:
(firstname || ' ' || lastname ) as fullname
Run Code Online (Sandbox Code Playgroud)
除非您设置了模式,否则这在MySQL中不起作用PIPES_AS_CONCAT(请参阅此处)。
在MySQL中,您会得到0,因为+它被视为加法,并且两个字符串(以静默方式)基于前导数字转换为数字。由于两者均以非数字开头,因此它们都被转换为0。