试图弄清楚如何修改此WITH CTE AS语句。我下面的内容将使用ABC订单中非空且Delflg=0的客户来更新我的StackCustomerAltID编号。但我需要弄清楚如何修改它来更新我的StackCustomerAltID编号,ABC订单中的客户为空白客户。但问题似乎是空白。我试着删除where子句,但它先放空格,然后放有实际客户的空格。
现有查询
WITH CTE AS(
SELECT StackCustomerAltID,
ROW_NUMBER() OVER (ORDER BY Customer) AS RN
FROM dbo.StackCustomer Where DelFlg = 0 and Customer <> '')
UPDATE CTE
SET StackCustomerAltID = RN;
无where条款
WITH CTE AS(
SELECT StackCustomerAltID,
ROW_NUMBER() OVER (ORDER BY Customer) AS RN
FROM dbo.StackCustomer )
UPDATE CTE
SET StackCustomerAltID = RN;
怎么样:
WITH CTE AS
(
SELECT
StackCustomerAltID,
ROW_NUMBER() OVER
(
ORDER BY
CASE WHEN Customer Is Null THEN 1 ELSE 0 END,
Customer
) AS RN
FROM
dbo.StackCustomer
)
UPDATE CTE
SET StackCustomerAltID = RN;