将多列中的数据添加到SQL Server中的一列

时间:2012-08-21 11:36:16

标签: asp.net sql-server linq sql-server-2008 linq-to-sql

如何将多列的数据添加到SQL Server的单个列中?

我有像Loc_BldgStreet, Loc_Area, Loc_City, Loc_State, Loc_Country这样的列,我希望将它们全部添加到一个单独的列中(在视图中),以便在gridview(asp.net)中显示它们,就像在单列中作为完整地址一样,以避免非常宽的网格。

怎么做?我正在使用linq从location_view绑定网格。

谢谢!

3 个答案:

答案 0 :(得分:2)

+符号用于在SQL中连接字符串。

col1 + col2 as Colname

如果其中一列恰好是数字(即int),则使用convert或cast

col1 + convert(varchar(10), col2) as Colname

如果其中一列允许为null,则需要使用IsNull,否则整个字符串将返回null:

col1 + isnull(col2, '') as Colname

创建视图:

CREATE VIEW dbo.MyView
AS

SELECT col1, col2, col3 + col4 + col5 as NewColName
FROM dbo.MyTable
GO

您还可以创建计算列并将您的连接放在那里。计算列也可以使用诸如运行总计等功能,并且不需要额外的视图。

答案 1 :(得分:2)

在SQL 2012中,您可以使用CONCAT构建单个列。

否则,请使用' +'操作数正如其他答案所示。

答案 2 :(得分:1)

试试这个:

select isnull(Loc_BldgStreet,'') +
       isnull(Loc_Area,'') +
       isnull(Loc_City,'') +
       isnull(Loc_State,'') + 
       isnull(Loc_Country,'')
from <your table>