正在尝试使用基于另一列值的大小写和条件更新SQL Server 2008中的列

正在尝试使用基于另一列值的大小写和条件更新SQL Server 2008中的列,sql,sql-server,sql-server-2008,sql-update,case,Sql,Sql Server,Sql Server 2008,Sql Update,Case,我正在尝试根据其他列中的值更新包含两列的表。我有一个语法错误,现在我有点痛苦。因此,我想根据NET\u SALES列中的值更新列MONETARY,并根据DLP列中的值更新列recenty。想法 UPDATE #CC201403B_CURRENT SET MONETARY=CASE WHEN (NET_SALES BETWEEN '75.00' AND '100.00') THEN '75-100' WHEN (NET_SALES BETWEEN '100.01' AND '125.0

我正在尝试根据其他列中的值更新包含两列的表。我有一个语法错误,现在我有点痛苦。因此,我想根据
NET\u SALES
列中的值更新列
MONETARY
,并根据
DLP
列中的值更新列
recenty
。想法

UPDATE #CC201403B_CURRENT
 SET MONETARY=CASE 
  WHEN (NET_SALES BETWEEN '75.00' AND '100.00') THEN '75-100'
  WHEN (NET_SALES BETWEEN '100.01' AND '125.00') THEN '100-125'
  WHEN (NET_SALES BETWEEN '125.01' AND '175.00') THEN '125-175'
  WHEN (NET_SALES BETWEEN '175.01' AND '250.00') THEN '175-250'
  ELSE '250+' END,
 SET RECENCY=CASE
  WHEN (DLP BETWEEN '3/1/2013' AND '5/31/2013') THEN 'DLP 10-12'
  WHEN (DLP BETWEEN '6/1/2013' AND '8/31/2013') THEN 'DLP 7-9'
  WHEN (DLP BETWEEN '9/1/2013' AND '11/30/2013') THEN 'DLP 4-6'
  WHEN (DLP BETWEEN '12/1/2013' AND '2/28/2014') THEN 'DLP 0-3' 
  ELSE '' END;

您在查询中设置了关键字
2次,您不需要它。请尝试以下查询

UPDATE #CC201403B_CURRENT
SET 
    MONETARY = CASE 
        WHEN (NET_SALES BETWEEN '75.00' AND '100.00') THEN '75-100'
        WHEN (NET_SALES BETWEEN '100.01' AND '125.00') THEN '100-125'
        WHEN (NET_SALES BETWEEN '125.01' AND '175.00') THEN '125-175'
        WHEN (NET_SALES BETWEEN '175.01' AND '250.00') THEN '175-250'
        ELSE '250+' END,
    RECENCY = CASE
        WHEN (DLP BETWEEN '3/1/2013' AND '5/31/2013') THEN 'DLP 10-12'
        WHEN (DLP BETWEEN '6/1/2013' AND '8/31/2013') THEN 'DLP 7-9'
        WHEN (DLP BETWEEN '9/1/2013' AND '11/30/2013') THEN 'DLP 4-6'
        WHEN (DLP BETWEEN '12/1/2013' AND '2/28/2014') THEN 'DLP 0-3' 
        ELSE '' END;

你的语法错误是什么?