Breaking News
Loading...
10/05/2014

Update một column với những giá trị Unique thông qua CTE

Giả sử ta có 1 table là MyOrders với cột orderid vì lý do nào đó, nó không có giá trị duy nhất (unique), ta muốn update lại tất cả giá trị cho nó tăng dần từ 1.

Sau đây là câu lệnh dùng kỹ thuật CTE trong SQL Server, vì không có ràng buộc phải order theo 1 tiêu chí nào, nên ta dùng Select Null:

WITH C AS
(
SELECT orderid, ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS rownum
FROM Sales.MyOrders
)
UPDATE C
SET orderid = rownum;

Bây giờ select lại table MyOrders, ta thấy cột orderid có giá trị tăng dần như hình sau: Update-table-with-cte-sql-server

0 comments:

Post a Comment

 
Toggle Footer