我们有一个订单表,其中几乎没有重复。但重复项并不完全重复。
假设我有一个订单表:
CREATE TABLE orders
(
order_id INT,
order_number INT,
customer_id VARCHAR(34),
tb_register_no INT,
tb_customer_id VARCHAR(7),
tb_customer_no VARCHAR(10),
tb_store_no INT,
tb_trans_no INT,
tb_trans_category_id VARCHAR(4),
sales_associate_no VARCHAR(5),
date_booked VARCHAR(7)
);
INSERT INTO orders
(`order_id`, `Order_number`, `Customer_Id`, `tb_register_no`, `tb_customer_id`, `tb_customer_no`, `tb_store_no`, `tb_trans_no`, `tb_trans_category_id`, `sales_associate_no`, `date_booked`)
VALUES
(1, 1001, NULL, 3, NULL, NULL, 235, 1001, '2', '52279', '00:00.0'),
(2, 1001, '0x331EFC0429A811E39742643150505996', 3, '3479899', '8883724945', 235, 1001, NULL, NULL, '00:00.0'),
(3, 1014, NULL, 2, NULL, NULL, 235, 1014, '2', '52275', '00:00.0'),
(4, 1014, '0x330E5A3429A811E39742643150505996', 2, '3479876', '8883722810', 235, 1014, NULL, NULL, '00:00.0')
;
所以我需要为所有相同的订单输入一个订单条目order_number,tb_register_no,tb_store_no,tb_trans_no,date_booked
。这意味着我需要将 order_id 1 和 2 的记录合并到一个记录中,并填充NULLs
另一条记录。我们应该怎么做?
这将在 SQLServer 2005 中完成。像这样合并行后,我需要删除其他重复的订单(如果我们将 order_id 1 的行合并为 2,那么必须删除 order_id 1 的行)。