sql条件检查 [英] sql condition checking

查看:83
本文介绍了sql条件检查的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表,其中包含一列标记".在那个标记中,我必须检查它是否大于50.如果是50,则传递失败,否则失败,为此我写了一个查询,

  SELECT 标记,

              案例 何时标记> =  50   THEN  '  PASS'

               ELSE  ' 失败'

               END   AS 状态

               FROM  TABLENAME



在这里我可以得到预期的结果,但是问题是我需要提供一个参数,因为如果给定0,则仅显示失败结果;如果给定1,则仅显示通过;如果为2,则失败和通过. ........任何人都可以如何帮助

解决方案

以下是代码:

  DECLARE   @ ParamVal   int 
 SET   @ ParamVal  =  2 

选择
案例  @ ParamVal 
何时  0  > THEN 
   选择标记,
   案例 时间标记<  50   THEN  ' 
    END   AS 状态
时间  1  时间
   选择标记,
   案例 何时标记> =  50   THEN  '  PASS'
    END   AS 状态
    FROM  TABLENAME
时间  2  时间
   选择标记,
   案例 何时标记> =  50   THEN  '  PASS'
    ELSE  ' 失败'
    END   AS 状态
    FROM  TABLENAME 


下面的查询应该可以正常工作

  DECLARE   @ Param   AS   BIT  =  1  - 用于通过/失败选择的参数

 选择标记,
    案例 何时标记> =  50   THEN  '  PASS'
     ELSE  ' 失败'
     END   AS 状态
 FROM  TABLENAME
位置( @ Param  =  1   AND 标记> =  50 )- 通过结果
 OR ( @ Param  =  0   AND 标记<  50 )- 结果失败
  @ Param   IS   NULL  - 所有结果 


I have a table consist of a column ''Marks''. In that marks I''ve to check whether it is greater than 50 or not. If it is 50 its pass else fail, for this I wrote a query as

SELECT MARKS,

              CASE WHEN MARKS >= 50 THEN 'PASS'

              ELSE 'FAIL'

              END AS STATUS

              FROM TABLENAME



here I can get the expected result, but the problem is I need to give a parameter as, if I give 0 it shold display only the fail results, and if I give 1 should show only pass, if 2, both fail and pass.........how is it possible can anyone help

解决方案

Here is the code:

DECLARE @ParamVal int
SET @ParamVal = 2

SELECT
CASE @ParamVal
WHEN 0 THEN 
   SELECT MARKS,
   CASE WHEN MARKS < 50 THEN 'FAIL'
   END AS STATUS
WHEN 1 THEN 
   SELECT MARKS,
   CASE WHEN MARKS >= 50 THEN 'PASS'
   END AS STATUS
   FROM TABLENAME
WHEN 2 THEN 
   SELECT MARKS,
   CASE WHEN MARKS >= 50 THEN 'PASS'
   ELSE 'FAIL'
   END AS STATUS
   FROM TABLENAME


Below query should work fine

DECLARE @Param AS BIT = 1 -- Parameter for PASS/FAIL selection

 SELECT MARKS,
    CASE WHEN MARKS >= 50 THEN 'PASS'
    ELSE 'FAIL'
    END AS STATUS
FROM TABLENAME
WHERE (@Param = 1 AND MARKS >= 50) -- Pass results
OR (@Param = 0 AND MARKS < 50) -- Fail results
OR @Param IS NULL -- All results


这篇关于sql条件检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆