`
tangkuo
  • 浏览: 101106 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

CASE WHEN THEN END

 
阅读更多
SELECT ID,
               ORDER_ID,
               ACCOUNT_NO,
               CREATE_TIME,
               DR_CR_FLAG,
               BUSINESS_TYPE,
               PAYMENT_ORDER_NO,
               DR_CR_AMOUNT,
               CR_AMOUNT,
               PRE_CR_AMOUNT,
               ACCOUNT_AMOUNT,
               EXPENSE_FLAG
          FROM (SELECT ROW_NUMBER() OVER(PARTITION BY ORDER_ID, BUSINESS_TYPE, EXPENSE_FLAG ORDER BY VOUCHER_NO desc) RN,
                       T.ID,
                       T.ORDER_ID,
                       T.ACCOUNT_NO,
                       T.CREATE_TIME,
                       T.DR_CR_FLAG,
                       T.BUSINESS_TYPE,
                       T.PAYMENT_ORDER_NO,
                       T.DR_CR_AMOUNT,
                       T.CR_AMOUNT,
                       T.PRE_CR_AMOUNT,
                       T.ACCOUNT_AMOUNT,
                       T.EXPENSE_FLAG
                  FROM T_ACCOUNT_WATER T
                 WHERE T.ACCOUNT_NO = 1019659769267895
                   AND T.BUSINESS_TYPE != 'REFUND'
                   AND T.CREATE_TIME >= TO_DATE('2016-01-15','yyyy-mm-dd')
                   AND T.CREATE_TIME < TO_DATE('2016-01-15','yyyy-mm-dd') +1)
         WHERE RN = 1
           AND CASE
                 WHEN BUSINESS_TYPE = 'NBNKTRANS' THEN
                  DR_CR_FLAG
                 ELSE
                  'CR'
               END = 'CR'
        UNION ALL
        SELECT ID,
               ORDER_ID,
               ACCOUNT_NO,
               CREATE_TIME,
               DR_CR_FLAG,
               BUSINESS_TYPE,
               PAYMENT_ORDER_NO,
               DR_CR_AMOUNT,
               CR_AMOUNT,
               PRE_CR_AMOUNT,
               ACCOUNT_AMOUNT,
               EXPENSE_FLAG
          FROM (SELECT ROW_NUMBER() OVER(PARTITION BY ORDER_ID, BUSINESS_TYPE, EXPENSE_FLAG ORDER BY VOUCHER_NO desc) RN,
                       T.ID,
                       T.ORDER_ID,
                       T.ACCOUNT_NO,
                       T.CREATE_TIME,
                       T.DR_CR_FLAG,
                       T.BUSINESS_TYPE,
                       T.PAYMENT_ORDER_NO,
                       T.DR_CR_AMOUNT,
                       T.CR_AMOUNT,
                       T.PRE_CR_AMOUNT,
                       T.ACCOUNT_AMOUNT,
                       T.EXPENSE_FLAG
                  FROM T_ACCOUNT_WATER T
                 WHERE T.ACCOUNT_NO = 1019659769267895
                   AND T.BUSINESS_TYPE = 'REFUND'
                   AND T.CREATE_TIME >= TO_DATE('2016-01-15','yyyy-mm-dd')
                   AND T.CREATE_TIME < TO_DATE('2016-01-15','yyyy-mm-dd') +1);
                
分享到:
评论

相关推荐

    sql数据库 转 Access SQL语句改写之 Case When Then When Then Else End

    ### SQL数据库转Access SQL语句改写:Case When Then When Then Else End #### 知识点一:SQL CASE WHEN THEN 结构与Access IIF及SWITCH函数对比 在进行SQL到Access SQL的转换过程中,一个重要的知识点是了解如何...

    case when和sum case when 写法及拼接字段

    SUM(CASE WHEN condition THEN value ELSE 0 END) AS total FROM table; ``` 其中: - `condition` 是一个布尔表达式,如果为真,则执行 `THEN` 子句。 - `value` 是当 `WHEN` 条件为真时返回的值,通常是一个...

    oracle where case when where后面跟case when

    WHERE salary &gt; (CASE WHEN AVG(salary) IS NOT NULL THEN AVG(salary) ELSE 0 END); ``` 在这个例子中,`CASE WHEN`语句检查平均薪资是否为`NULL`,如果不是,则使用平均薪资作为比较值;如果是`NULL`,则使用0。 ...

    详细解析 mysql 中的 case when 语句的使用

    SUM(CASE WHEN download_type_id = 13 THEN 1 ELSE 0 END) AS count_13, SUM(CASE WHEN download_type_id = 14 THEN 1 ELSE 0 END) AS count_14, SUM(CASE WHEN download_type_id = 15 THEN 1 ELSE 0 END) AS ...

    casewhen多条件oracle-casewhen(casewhen同时满足多条件).pdf

    Oracle CASE WHEN 多条件语句详解 CASE WHEN 语句是 SQL 中的一种条件语句,用于实现多个条件的判断和执行。它可以用来代替 IF 语句和 SWITCH 语句,在 Oracle 数据库中尤其常用。 CASE WHEN 语句的基本语法是: `...

    sql学习之CASE WHEN THEN ELSE END的用法

    在SQL语言中,`CASE WHEN THEN ELSE END`结构是一种强大的条件判断工具,它允许你在查询中根据特定条件执行不同的逻辑。这个结构可以在`SELECT`、`WHERE`、`HAVING`、`UPDATE`和`INSERT`等语句中使用,以实现复杂的...

    SQL集合函数中case when then 使用技巧

    在这个查询中,`COUNT(CASE WHEN province = '某省' THEN '某省' END)` 实际上是计算满足条件的行数。即使`COUNT()`函数内部使用的是列名(如`province`),结果也是一样的,因为所有满足条件的行都将被计数一次。...

    sum(case when then)(判断男女生的个数)

    SUM(CASE WHEN gender = 0 THEN 1 ELSE 0 END) AS male_count, SUM(CASE WHEN gender = 1 THEN 1 ELSE 0 END) AS female_count FROM students; ``` 这段代码将计算 `students` 表中性别为0(男生)和1(女生)的...

    oracle case when 语句的用法详解

    1. CASE WHEN 表达式有两种形式 代码如下:–简单Case函数 CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘2’ THEN ‘女’ ELSE ‘其他’ END –Case搜索函数 CASEWHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘2’ ...

    Oracle_case_when_用法

    ### Oracle CASE WHEN 用法详解 #### 一、概述 在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`...

    decode函数与case when 的妙用

    在数据库管理和SQL编程中,`DECODE`函数和`CASE WHEN`语句是两种非常重要的逻辑判断工具,它们常用于处理条件分支和数据转换。在这篇文章中,我们将深入探讨这两种方法的用途、区别以及如何巧妙地运用它们。 首先,...

    sql case when exists not exists in not in

    在SQL查询中,`CASE WHEN`、`EXISTS`、`NOT EXISTS`以及`IN`和`NOT IN`是常用的操作符,它们用于处理复杂的条件判断和数据筛选。这些概念对于理解和编写高效的SQL语句至关重要,尤其是在数据分析和数据库管理中。 `...

    Oracle与Mysql差异说明.doc

    3. DECODE 和 CASE WHEN:Oracle 的 DECODE 函数在条件判断中提供简洁的语法,但在 MySQL 中,你需要使用 CASE WHEN THEN END 结构来实现相同功能。 4. TO_DATE 和 STR_TO_DATE:Oracle 的 TO_DATE 函数将字符串...

    高级数据查询语句!!!

    多表联查:等值联查、非等值联查。外联查询,union,子查询,any,some,all.case when then end

    SQL Server中Case 的不同用法

    WHEN price BETWEEN 10 AND 20 THEN 'Average' ELSE 'Gift to impress relatives' END AS 'Price Range' FROM titles ORDER BY price; ``` 2. **在GROUP BY子句中的应用**: CASE表达式也可用于GROUP BY子句,...

    学习oracle笔记(word版本)

    CASE WHEN THEN END CASE结构允许基于不同条件执行不同的动作。 5. **循环结构**:Oracle PL/SQL支持多种循环结构,如WHILE、FOR和LOOP。例如,`FOR循环`常用于遍历范围或集合,而`LOOP WITH EXIT WHEN`可以实现更...

    sql函数集合(具体的讲解函数例子帮助理解)

    2. CASE WHEN THEN END: 更复杂的条件判断,可以实现多条件分支。如: ``` CASE WHEN age &lt; 18 THEN 'Child' WHEN age BETWEEN 18 AND 60 THEN 'Adult' ELSE 'Senior' END ``` 3. GROUP BY 和 HAVING: 用于...

    mysql case when group by 实例详解

    MySQL中的`CASE WHEN`语句是一种条件判断表达式,它在SQL查询中起到了类似编程语言中`switch-case`或`if-else`的作用。这个功能强大的工具允许你在单个查询中根据不同的条件返回不同的结果值,非常适合数据分析和...

    Test-Boolean-Firebird.zip_Will_boolean

    4. **函数转换**:例如,我们可以使用IF()函数或CASE WHEN THEN END结构来根据布尔值的真伪执行不同的操作,或者使用BINARY_TO_INT()和INT_TO_BINARY()函数进行布尔值和整数之间的转换。 5. **索引优化**:测试是否...

Global site tag (gtag.js) - Google Analytics