在SQL Server中连接列值

时间:2015-01-27 16:48:56

标签: sql asp.net sql-server vb.net sql-server-2005

我想从数据库中选择两列(名字和姓氏),将它们合并为一列,然后将它们粘贴到数据集中以显示在数据网格中。我还需要在它们之间添加一个空格来进行格式化。

我的正常SQL语句:

SELECT first_name + ' ' + last_name as userName from Table

我目前的VB声明:

strSQL = "SELECT first_name + ' ' + last_name as userName from Table"

当我尝试执行此操作时,我的应用程序会抛出以下错误:System.Data.SqlClient.SqlException: An object or column name is missing or empty. For SELECT INTO statements, verify each column has a name. For other statements, look for empty alias names. Aliases defined as "" or [] are not allowed. Add a name or single space as the alias name.

编辑:对于那些询问数据库和/或这是否是正确查询的人,如果我按如下方式格式化我的VB查询:

strSQL = "SELECT first_name + last_name as userName from Table"

我得到了正确的结果,但是该列看起来像FirstLast并且很难阅读。

我猜错了如何在VB中如何正确地做到这一点。有人可以建议吗?

我尝试的事情:

strSQL = "Name = TU1.first_name + ' ' + TU1.last_name"

这会引发同样的错误。然而...

strSQL = "Name = TU1.first_name + '' + TU1.last_name"

给了我First'Last

的结果

1 个答案:

答案 0 :(得分:3)

在SQL中格式化字符串时,使用SPACE()函数排除引用不一致:

strSQL = "SELECT first_name + SPACE(1) + last_name as userName from Table"

话虽如此,这种格式最好留给演示文稿,而不是数据层。