在一列中组合2列

时间:2017-06-14 07:56:09

标签: sql sql-server select select-query

嗨我有两个单独的列[StuName,StuLName]

在选择中我使用如下:

Select StuName, StuLName From Tbl_Student

  

结果:[Mahdi],[Hosseini]

有没有办法将这两列合并在一列(仅限于select)中:

Select StuName + " " + StuLName From Tbl_Student

结果(例如):

  

Mahdi Hosseini

StuName和StuLName是NVARCHAR

5 个答案:

答案 0 :(得分:4)

您的查询应该有效。否则,您也可以使用[CONCAT]来串联两个或更多字符串:

SELECT CONCAT('First' , ' ' , 'Last' )

结果:

First Last

有关MSDN上的Concat的更多信息。

在你的情况下,这应该是诀窍:

SELECT CONCAT(StuName, ' ',StuLName) AS StudentName FROM Tbl_Student

答案 1 :(得分:1)

试试这个:

SELECT TABLE_SCHEMA + '.' + TABLE_NAME AS ColumnZ 
FROM information_schema.tables

答案 2 :(得分:1)

SQL使用一对单引号而不是双引号。这应该工作正常:

Select StuName + ' ' + StuLName From Tbl_Student

答案 3 :(得分:1)

尝试此查询,其中一列可能具有空值,因此它将返回空值

 Select ISNULL(StuName,'') + ' ' + ISNULL(StuLName,'') From Tbl_Student

答案 4 :(得分:1)

首先,您的语句尝试获取名为“”的列。如果您只想要一个空格字符,则需要使用单引号:''。使用双引号时,通常会引用列或数据库对象。

如果至少有一个连接值为null,则SqlServers字符串连接返回null:

'te' + 'st' = 'test'

'te' + null = null

为确保获得值,您必须确保所有部分都提供非空值。这是使用 isNull 合并完成的。我更喜欢合并,因为它更像是一个标准(如果我错了,请纠正我)。或者你可以使用非常有用的 concat 函数来处理所有这些参数。

所以你的陈述应该是这样的:

Select coalesce(StuName,'') + ' ' + coalesce(StuLName,'') From Tbl_Student

Select concat(StuName,' ',StuLName) From Tbl_Student