CREATE FUNCTION ValidateExclVehicle_check (
@vin CHAR(17),
@vehicle_type CHAR(3)
)
RETURNS TINYINT
AS
-- Exists = 1
-- Not Exists = Null, 0 substituted
RETURN (
SELECT COALESCE(1, 0)
FROM Vehicle
WHERE vin = @vin
AND vehicle_type = @vehicle_type
)
我不明白为什么表达式 COALESCE(1,0) 会返回 1 以外的任何值,除非 where 子句不返回任何行,在这种情况下,整个语句不返回任何行,并且 coalesce 表达式的值无关紧要。我没有看到“0 替换”。
有什么我想念的吗?