如何将多列的数据添加到SQL Server的单个列中?
我有像Loc_BldgStreet, Loc_Area, Loc_City, Loc_State, Loc_Country
这样的列,我希望将它们全部添加到一个单独的列中(在视图中),以便在gridview(asp.net)中显示它们,就像在单列中作为完整地址一样,以避免非常宽的网格。
怎么做?我正在使用linq从location_view绑定网格。
谢谢!
答案 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>