SQL MULTIPLE CASE ISNULL

时间:2013-11-26 17:24:54

标签: sql-server tsql case isnull

我在论坛中搜索但找不到帖子来帮助我,所以这里就是

我正在尝试根据两个潜在案例提取一列数据,但是我无法让查询正常工作,我的>一直出现语法错误操作者:

OnHandQty = CASE 
            WHEN job_order_view.job_numb like '5%' THEN isnull(q.ONHAND_QTY,1) > '0'
            WHEN job_order_view.job_numb like '1%' THEN isnull(q.ONHAND_QTY,1) > '-1'
            ELSE '-'
        END

3 个答案:

答案 0 :(得分:0)

为了达到预期的结果,我不得不将条件包含在IIf()函数中。

SELECT CASE WHEN 1=1 THEN IIf(1 > 1, 1, 0) END

http://sqlfiddle.com/#!6/d41d8/12334

上面使用它可行。如果我只离开1 > 1,我会收到相同的错误消息。

编辑:请注意,这是一个独立的示例,用于说明如何实现此目的。您应该能够非常轻松地使其适应您的代码。

答案 1 :(得分:0)

基于你所说的(我仍然不确定它是否有意义),我会做类似的事情:

isnull(q.ONHAND_QTY,1)> CASE 
            WHEN (job_order_view.job_numb like '5%') then ('0')
            WHEN (job_order_view.job_numb like '1%') THEN ('-1')
            ELSE '-'  --What is this part supposed to do?
        END

答案 2 :(得分:0)

尝试类似

的内容
OnHandQty = CASE 
    WHEN job_order_view.job_numb like '5%' AND isnull(q.ONHAND_QTY,1) > '0' THEN  isnull(q.ONHAND_QTY,1)
        WHEN job_order_view.job_numb like '1%' AND isnull(q.ONHAND_QTY,1) > '-1' THEN isnull(q.ONHAND_QTY,1)
        ELSE '-'
    END