SQL中如何遍历表并更新某个字段的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中如何遍历表并更新某个字段的值相关的知识,希望对你有一定的参考价值。
有一个表Table_A,其中有一个字段Field_1,我要遍历并更新所有的Field_1的值,其中Field_1的值是Table_A和Table_B通过Inner Join联合查询得到的一个字符串
也就是将Table_A.Field_1的值更新为Table_A.Field_1+Table_B.Field_2
数据库是SQL2005
我省略了Inner Join的结构,其实不止是一个Join,应该说Table_A的某个键是Table_B的外键,但是既不是Field_1也不是Field_2,也就是Inner Join与要更新的字段无关
Field_1和Field_2都是varchar
Set Field_1 = A.Field_1+B.Field_2
From Table_A A
Inner Join Table_B B
On A.xxx = B.xxx
说明如下
这是一个模式 on 后面的a.xxx 是Table_A的某个键 ,B.xxx 是Table_B的某个键。 A.xxx = B.xxx 这两个键的关系是主键与外键的关系,并且这两个键是1对1的关系! 参考技术A 请详细说明数据库以及版本
说明inner join的条件
说明Field_1和Field_2字段的类型
否则无法解答 参考技术B update Table_A
set Field_1=Table_A.Field_1+Table_B.Field_2
where Table_B.键=Table_A.B的外键键 参考技术C update Table_A
Set Field_1 = A.Field_1+B.Field_2
From Table_A A
Inner Join Table_B B
On A.xxx = B.xxx 参考技术D 二楼正解
sql语言 如何将一个字段的值的一部分赋给另外一个字段
例如:把字段TDZL内容为“XXX村西北 ”的“XXX村”赋址给另外一个字段TXDZ的值为“AA区BB镇XXX村”。
Final=TXDZ + substr(TDZL,y,z)其中Final为最终所得字段,y是你想截图的TDZL字段的开始位置,你这个例子中y=1,z是你从y位置开始要截取的长度,比如你的“***村”长度为9,那么z就换成9就行了。追问
XX村的长度和内容是不固定的,但已知的是截取到包括“村”之前的所有内容,同时增加固定的AA区BB镇到XX村之前,这个是不是没办法了
追答有办法:再调用一个函数就行,如下:
FINAL=TXDZ.apend(select SUBSTRING('TDZL',1,charindex('村','TDZL')))
如有有哪里不明白意思就问
以上是关于SQL中如何遍历表并更新某个字段的值的主要内容,如果未能解决你的问题,请参考以下文章