2016-09-27 108 views
0

我有此查询:SQL服务器return语句

SELECT t.price/100 as P 
FROM mytable.user as t 
WHERE t.price = ?; 

但我要检查,如果该参数值为零的SELECT之前,以避免SQL错误,所以我已经试过这样:

IF (CAST(? AS float) = 0) 
BEGIN 
    RETURN 0 
END 
ELSE 
BEGIN 
    SELECT t.price/100 as P 
    FROM mytable.user as t 
    WHERE t.price = ? 
END; 

但我有此错误消息(第3行):

具有返回值A RETURN语句不能在此 上下文中使用。

+1

这是一个视图还是过程?什么是上下文? – qub1n

+0

为什么't.price = 0'会导致SQL错误? – Paddy

+0

SELECT t.price/100 as P将导致错误... –

回答

0

不要使用return 0而是使用select 0作为p。以下是样本。

IF (CAST(? AS float) = 0) 
BEGIN 
    select 0 as P 
END 
ELSE 
BEGIN 
    SELECT t.price/100 as P 
    FROM mytable.user as t 
    WHERE t.price = ? 
END; 
+0

谢谢,它的作品! –