我在表格中对35050行进行批量更新时遇到问题,我需要更新前面没有零的所有条形码。我有的SQL SELECT语句是这样的。它可以正常工作,但我的更新声明没有。
SELECT *
FROM [Hep_ManEquipInterface].[dbo].[LabelUnitBarcodes] h WITH (NOLOCK)
WHERE LEFT(h.barcode, 1) != '0'
ORDER BY [created_at] desc
哪位给我这张桌子。
barcode weight created_at location SupplierType
409101685473 2285 2015-02-02 12:23:03.830 372
409101275155 2285 2015-02-02 12:22:51.143 372
409101685466 2285 2015-02-02 12:22:34.983 372
409101275148 2285 2015-02-02 12:22:25.280 372
结果应该是条形码前面为零:
barcode weight created_at location SupplierType
0409101685473 2285 2015-02-02 12:23:03.830 372
0409101275155 2285 2015-02-02 12:22:51.143 372
0409101685466 2285 2015-02-02 12:22:34.983 372
0409101275148 2285 2015-02-02 12:22:25.280 372
我当然试过了,但是我在使用这句话时仍然收到错误:
UPDATE [Hep_ManEquipInterface].[dbo].[LabelUnitBarcodes]
SET [barcode] = '0'+ (SELECT * h.[barcode] FROM [Hep_ManEquipInterface].[dbo].[LabelUnitBarcodes] h WITH (NOLOCK) WHERE LEFT(h.barcode, 1) != '0')
答案 0 :(得分:5)
不要让事情复杂化,这只是一个简单的更新。
UPDATE [Hep_ManEquipInterface].[dbo].[LabelUnitBarcodes]
SET [barcode] = '0'+ [barcode]
WHERE LEFT(barcode, 1) != '0'