首页 > 解决方案 > SQL Server:连接行/或列并将结果更新为列

问题描述

以下情况:

我有一个动态(按列)构建的表......例如:

 Rowid UniqueID Name Birthdate Town ....
   1     null    Joe  Jan-93    Cologne
   2     null    Nick Okt-00    London

我正在构建这个 TempTable 为我的数据库中的所有数据创建一个 uniqueID TempTable 是由两个循环创建的,这些循环遍历我的所有数据库表和列,并将所有主键数据复制到这个 TempTable。

我的目标是使用数据的 concat 值更新我的 TempTable 中的 UniqueID 列......例如:

    UniqueID
  JoeJan-93Cologne
  NickOkt-00London

您知道如何更新 UniqueID 吗?

我在想的是:

Loop 1 going through all Tables
 Select Table of Schema
Loop 2 going through all Columns of Table
 Select Column of Schema

 Copy Column to my Temp 

 -- here an update  like ... set UniqueID = select concat(UniqueID, @Column) 
 -- from @table where RowID = RowID
End loop 2 
end loop 1 

这可能吗?或者我是否必须打开第三个循环,该循环遍历所有行和连接值?

标签: sqlsql-serversql-updaterowsconcat

解决方案


你可以试试这个

Update <YourTableName>
set UniqueId = ISNULL(Name, '') +  ISNULL(Cast(Birthdate as Varchar(10), '') + ISNULL(Town, '')

推荐阅读