我有一个有3列的表
id、公司和地址
今天我发现了一个bug,它有时会将地址保存在company -列中,而将company保存在adress -列中,我已经更正了这个bug,现在我正在尝试将数据放在正确的位置。
每个地址都有一个数字,所以我猜最简单的方法是,如果公司列中有数字,就切换地址和公司列(如果在真实的公司名称中应该有数字,这就没那么重要了:p)。
我应该如何在TSQL中编写它?
发布于 2010-08-19 16:44:21
我不确定在这里做这件事是正确的,但我想不出任何其他的替代方法,这应该是正确的。
Update dbo.MyTable
Set Company = Address,
Address = Company
Where Company like '%[0-9]%'发布于 2010-08-19 17:02:38
您可以尝试这样做:如果公司地址已经包含一个数字,我会设置一个简单的保护来避免交换
insert into COMPANY (NAME, ADDRESS)
VALUES ('2 bld d''Italie' , 'CA') ,
('Take 2' , 'anselmo street 234') ,
('Microsoft' , '1 Microsoft Way Redmond'),
('lake street 14' , 'Norton'),
('lake street 17' , 'trendMicro');
SELECT * FROM COMPANY
UPDATE COMPANY set NAME = ADDRESS, ADDRESS = NAME
WHERE NAME like '%[0-9]%' and (ADDRESS not like '%[0-9]%')
SELECT * FROM COMPANY您可能会注意到take 2行不会被交换
https://stackoverflow.com/questions/3520033
复制相似问题