sql条件判断语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql条件判断语句相关的知识,希望对你有一定的参考价值。

哪位大神能帮小弟解决下SQL中条件的判断。如下:
SQL语句:select * from issuebond_info A ,issue_remark_info B where......。where 后面根据不同的条件加入不同的SQL语句。即:
if(B.remarkNO!='08')
B.remark_amt < (select sum(a1.notional_amt) from issuebond_info a1 where a1.issue_date < a.issue_date and a1.remark_no = a.remark_no)(不用担心这个语句的正确性)
else
不添加上面( b.remark_amt < (select sum(a1.notional_amt) from issuebond_info a1 where a1.issue_date < a.issue_date and a1.remark_no = a.remark_no) )这个语句

SELECT *
  FROM ISSUEBOND_INFO A, ISSUE_REMARK_INFO B
 WHERE (B.REMARKNO <> '08' AND
       B.REMARK_AMT < (SELECT SUM(A1.NOTIONAL_AMT)
                          FROM ISSUEBOND_INFO A1
                         WHERE A1.ISSUE_DATE < A.ISSUE_DATE
                           AND A1.REMARK_NO = A.REMARK_NO))
    OR (B.REMARKNO = '08' AND
       B.REMARK_AMT < (SELECT SUM(A1.NOTIONAL_AMT)
                          FROM ISSUEBOND_INFO A1
                         WHERE A1.ISSUE_DATE < A.ISSUE_DATE
                           AND A1.REMARK_NO = A.REMARK_NO));

这两条判断就是一个

SELECT *
  FROM ISSUEBOND_INFO A, ISSUE_REMARK_INFO B
 WHERE B.REMARK_AMT < (SELECT SUM(A1.NOTIONAL_AMT)
                          FROM ISSUEBOND_INFO A1
                         WHERE A1.ISSUE_DATE < A.ISSUE_DATE
                           AND A1.REMARK_NO = A.REMARK_NO);

参考技术A select * from issuebond_info A ,issue_remark_info B
where
B.remarkNO!='08' and B.remark_amt < (select sum(a1.notional_amt) from issuebond_info a1 where a1.issue_date < a.issue_date and a1.remark_no = a.remark_no)

or
b.remark_amt < (select sum(a1.notional_amt) from issuebond_info a1 where a1.issue_date < a.issue_date and a1.remark_no = a.remark_no)

sql语句判断时间区间的问题

我想筛选出一个时间区间里面的数据
刚刚百度到一个CheckDate Between这个方法,
但是我这样写起来出错了,
http://zhidao.baidu.com/question/515206803.html
$check_sql = "SELECT id FROM $cxlm_table WHERE CheckDate Between '$yesterday' And '$nowdatetime' ";
输出之后是这样的
SELECT id FROM cx_cxlm WHERE ip = '127.0.0.1' AND CheckDate Between '2013-08-11 12:14:01' And '2013-08-12 12:14:01'
给这句话加上括号也没用,
报错信息是
#1054 - Unknown column 'CheckDate' in 'where clause'
被当作字段处理了
请问下sql语句里面判断时间区间的方法是什么?

1、首先,我们来定义一个时间字段的参数,暂且命名为Date,语句为:declare @Date datetime。

2、给@Date这个参数进行赋值,的getDate(),语句为: set @Date=getDate()。

3、DATEADD() 函数在日期中添加或减去指定的时间间隔,语法为:DATEADD(datepart,number,date),datepart参数是合法的日期表达式。number是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

4、计算前一天的算法语句:select dateAdd(day,-1,@Date) as 'Yesterday',这里的as后面的内容只是定义查询出来列的名称而已。

5、最后,我们来执行一下这个查询语句。

6、后一天的算法语句如出一辙,只是需要将dateAdd中的时间间隔数进行一下调整即可。

参考技术A SQL 里面判断时间区的方法是 between and
如:有字段更新时间:updatetime 类型 datetime ,判断时间区'2013-08-11 12:14:01' 到 '2013-08-12 12:14:01'之前的,语句:
SELECT id FROM cx_cxlm WHERE ip = '127.0.0.1' AND updatetime Between '2013-08-11 12:14:01' And '2013-08-12 12:14:01'

#1054 - Unknown column 'CheckDate' in 'where clause'
不知道列CheckDate本回答被提问者采纳
参考技术B 你看看有没有checkdate这个字段

以上是关于sql条件判断语句的主要内容,如果未能解决你的问题,请参考以下文章

oracle SQL查询中,如何在where中用条件语句,判断不同情况,追加不同的And条件?

sql怎么用两个条件判断,让其中另一个值等于别的

makefile条件判断语句

sql中where 之后怎么加if条件判断

sql里as出来的数据怎么进行添加判断条件

sql where条件中入参判断