如何使用SQL UPDATE语句更新文本的某些部分

时间:2017-11-14 15:24:22

标签: sql sql-server

我将查询保存在名为sqlcode的表的列中,该表维护元数据。例如,以下是一个查询:

select 
    id, name, address, phone,
    .......
    ......
    , upddate 
from 
    bank a
join 
    bankreg b on a.id = b.id 
where 
    (condition)

我正在尝试更新保存在元数据中的查询文本但我想只更新查询的列名称部分,而不对select,from,joins或任何其他条件进行任何更改。任何只更新列名称的方法都会有所帮助。我尝试过使用replace函数但无法获得所需的输出。

我想用主表中的列更新此文本查询的列。如果在master中添加了新列,我想将它们添加到元数据查询中,并以文本形式保存。 INFORMATION_SCHEMA.COLUMNS现在为我提供了列名,我只想将这些列名更新为上面的查询

2 个答案:

答案 0 :(得分:0)

如果您需要更新括号中的列,可以在REPLACE中更新它们,而无需更新SELECT部分​​中的项目。

select 
id,name,address,phone,
.......
......
,upddate 
from bank a
join bankreg b 
on 
a.id = b.id 
where ([address] = 'My Street')

您的更新将是:

UPDATE MyTable SET MyCol = REPLACE(MyCol , '[address]', '[some_other_field]') 

答案 1 :(得分:0)

您想要重命名部分中的列名吗?

对要重命名的每个名称使用currentNAme AS NewName,currentName NewName,

取决于DBMS天气支持一种或另外一种或两种语法(sql-server - > go with AS)。使用1列名称进行测试以查看哪一个有效,然后使用该列直到

select 
id AS myNameForId,
name AS myNmeForName,
.......
......
,upddate 
from bank AS a
join bankreg AS b 
on 
a.id = b.id 
where (condition)

OR

select 
id myNameForId,
name myNmeForName,
.......
......
,upddate 
from bank a
join bankreg b 
on 
a.id = b.id 
where (condition)