SQL Server:更新/交换多个表中的多个字段
SQL Server 2008,SQL Server:更新/交换多个表中的多个字段,sql,sql-server-2008,Sql,Sql Server 2008,SQL Server 2008,dbo.VDATA中约100万行 PARTNO UDL3 ........ '100 - TXT' '31OZ' '101 - TXT' '32 OZ' PARTNO UDL3 ........ '31OZ - TXT' '31OZ' '32 OZ - TXT' '32 OZ'
dbo.VDATA中约100万行
PARTNO UDL3 ........
'100 - TXT' '31OZ'
'101 - TXT' '32 OZ'
PARTNO UDL3 ........
'31OZ - TXT' '31OZ'
'32 OZ - TXT' '32 OZ'
表dbo.VDATA
PARTNO UDL3 ........
'100 - TXT' '31OZ'
'101 - TXT' '32 OZ'
PARTNO UDL3 ........
'31OZ - TXT' '31OZ'
'32 OZ - TXT' '32 OZ'
表dbo.VDAT\u AUX
PARTNOAUX UDL12 ........
'100 - TXT' ''
'101 - TXT' ''
PARTNOAUX UDL12 ........
'31OZ - TXT' '100'
'32 OZ - TXT' '101'
我需要完成的是:
SELECT *
FROM dbo.VDATA
WHERE (PARTNO LIKE '% - TXT')
for each row in dbo.VDATA
set @Var_PARTNO-TEMP = PARTNO
set PARTNO = UDL3 & ' - TXT'
##Add ' - TXT' and set as PARTNO value
set dbo.VDAT_AUX.UDL12 = (REPLACE @Var_PARTNO-TEMP, ' - TXT', '')
##Remove ' - TXT' and set as UDL12 value
set dbo.VDAT_AUX.PARTNOAUX = dbo.VDATA.PARTNO
期望结果的示例:
表dbo.VDATA
PARTNO UDL3 ........
'100 - TXT' '31OZ'
'101 - TXT' '32 OZ'
PARTNO UDL3 ........
'31OZ - TXT' '31OZ'
'32 OZ - TXT' '32 OZ'
表dbo.VDAT\u AUX
PARTNOAUX UDL12 ........
'100 - TXT' ''
'101 - TXT' ''
PARTNOAUX UDL12 ........
'31OZ - TXT' '100'
'32 OZ - TXT' '101'
我可以选择我想要的行,但我对如何分步处理数据以及如何根据需要对数据进行洗牌感到迷茫。。。如果您有任何帮助/建议,我们将不胜感激,提前谢谢您!:) 这是我根据信息做出的猜测:
UPDATE vaux
SET UDL12 = REPLACE(v.PARTNO, ' - TXT', ''),
PARTNO=v.UDL3,
PARTNOAUX=v.PARTNO
FROM dbo.VDATA AS v
JOIN dbo.VDAT_AUX AS vaux ON v.PARTNO=vaux.PARTNOAUX
WHERE v.PARTNO LIKE '% - TXT'
最后一组“PARTNOAUX=v.PARTNO”可能不是必需的,因为如果该值不正确,则联接将无法工作
显然。。。您希望在一些测试数据上尝试此操作,而不是在实时数据上