【发布时间】:2016-04-24 14:40:28
【问题描述】:
我的问题是:我需要从我的数据库中选择所有包含 NrPad 列的数据库表,而对于这些表,我需要更新 NrPad 列
我已经有一个有效的选择和更新语句:
select
t.name as table_name
from sys.tables t
inner join sys.columns c
on t.object_id = c.object_id
where c.name like 'NrPad'
Update Anlage Set NrPad = CASE WHEN Len(Nr) < 10 THEN '0' + Convert(Nvarchar,Len(Nr)) ELSE Convert(Nvarchar,Len(Nr)) END + Nr
我的问题是:如何将这两个语句合并在一起?
我愿意接受建议,非常感谢您的帮助。
【问题讨论】:
-
你没有说你正在使用什么 dbms,如果它的 oracle 比你的问题的答案是你的问题,你有 MERGE 语句可以通过另一个表更新一个表或在你的情况下选择
-
更新所有表中的
NrPad以添加另一个0?您需要一个游标并使用动态 SQL 创建 UPDATE。 -
就像 dnoeth 说的游标是唯一的解决方案,oracle 合并语句只是由另一个表更新而不是更新多个表
标签: sql sql-server select sql-update