带有Transact SQL的IF语句

Ces*_*919 1 sql t-sql sql-server-2008

当我执行我的transact SQL代码时

IF (SELECT model_id FROM request_unit where request_id = '4357') IS NULL
    SELECT part_id FROM request_unit WHERE request_id = '4357'
ELSE
     SELECT model_id FROM request_unit where request_id = '4357'
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

Gor*_*off 5

刚刚使用COALESCE()怎么样?

SELECT COALESCE(model_id, part_id)
FROM request_unit 
WHERE request_id = '4357';
Run Code Online (Sandbox Code Playgroud)

IF是没有必要的.

错误本身似乎很明显.在4357的request_unit位置有多行request_id.