修改WITH CTE AS语句



试图弄清楚如何修改此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;

最新更新