注册 登录
编程论坛 SQL Server论坛

sqlserver 使用 with as merge时遇到一个奇怪的问题

A1exander 发布于 2019-06-22 11:34, 1780 次点击
直接上代码:
WITH T1 AS (
    SELECT
        ID,
        (CASE WHEN ID = 1 THEN 'AAA' ELSE 'BBB' END) AS NAME
    FROM
        test1
)
MERGE INTO test2 USING T1 ON test2.id = T1.id
WHEN MATCHED THEN
UPDATE SET test2.class = T1.NAME

当with as 语句里 包含了 case when,运行时就会报错:[Err] 42000 - [SQL Server]MERGE 语句必须以分号(;)结尾。
不使用case when 就正常执行
这是什么原因??
我在 with as 里,还必须使用 case when,这要如何解决??
0 回复
1