关于sql的case when用法简述

刚入手公司项目,需要添加一个功能,用到了SQL的case when以及concat

SELECT
        eve.cc,
        eve.sc,
        case concat(cc,sc)
        WHEN ‘00‘ THEN ‘‘
        WHEN ‘10‘ THEN ‘得意先‘
        WHEN ‘01‘ THEN ‘仕入先‘
        WHEN ‘11‘ THEN ‘得意先/仕入先‘
        ELSE ‘‘
        END as client_supplier_class
        FROM ( SELECT bd0.id,
        bd0.created,
        bd0.creator,
        bd0.modified,
        bd0.modifier,
        bd0.layout_id,
        bd0.app_id,
        bd0.parent_id,
        bd0.revision,
        bd0.rev_ctrl_id,
        bd0.owner,
        bd0.owned_org,
        ct0.client_cd,
        bd0.name,
        ct0.client_charge_select,
        usr.so_usr_furigana,
        ct0.client_charge_cd,
        ct0.official_name,
        ct0.pronunciation,
        ct0.zip_cd,
        ct0.address_1,
        ct0.address_2,
      ct0.tel,
      ct0.tel2,
      ct0.fax,
      ct0.fax2,
      ct0.lower_limit_time,
      ct0.lower_limit_time_unit,
      ct0.upper_limit_time,
      ct0.upper_limit_time_unit,
      ct0.valid_start_date,
      ct0.valid_end_date,
      ct0.client_class as cc,
      ct0.supplier_class as sc
    FROM basedataset bd0
    LEFT JOIN sys_client_mst ct0 ON bd0.id::text = ct0.id::text
    LEFT JOIN ( SELECT v_user_all.id,
    v_user_all.furigana AS so_usr_furigana
    FROM v_user_all) usr ON usr.id::text = ct0.client_charge_select::text
    WHERE bd0.layout_id::text = ‘sys_client_mst‘::text) eve;

原文地址:https://www.cnblogs.com/sharysea/p/10880666.html

时间: 2024-10-07 05:12:22

关于sql的case when用法简述的相关文章

SQL中CASE 的用法 转载

sql语言中有没有类似C语言中的switch case的语句?? 没有,用case   when   来代替就行了.              例如,下面的语句显示中文年月 select getdate() as 日期,case month(getdate()) when 11 then '十一' when 12 then '十二' else substring('一二三四五六七八九十', month(getdate()),1) end+'月' as 月份 ===================

sql case when 用法

sql语言中有没有类似C语言中的switch case的语句?? 没有,用case   when   来代替就行了.            例如,下面的语句显示中文年月         select   getdate()   as   日期,case   month(getdate())     when   11   then   '十一'     when   12   then   '十二'     else   substring('一二三四五六七八九十',   month(getda

你真的会玩SQL吗?Case的用法(转)

今天来总结整理一下Case,因为SQL查询中用得最多的逻辑判断. Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Ca

SQL语句case关键字的用法

一.简述 在操作数据库的过程经常忘了case关键字的语法,所以在此记录一下. 二.内容 case的简单语法 SELECT testName, testSex, CASE testSex WHEN '1' THEN '男' WHEN '0' THEN '女' END Sex FROM testDataTable SELECT testName, testDatetime, CASE WHEN testDatetime < '2016-04-11' THEN 'old' ELSE 'new' END

Oracle CASE WHEN 用法介绍

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' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra

行转列:SQL SERVER PIVOT与用法解释

转自:http://www.cnblogs.com/lwhkdash/archive/2012/06/26/2562979.html 在数据库操作中,有些时候我们遇到需要实现“行转列”的需求,例如一下的表为某店铺的一周收入情况表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我们先插入一些模拟数据: INSERT INTO WEEK_INCOME SELECT '星期一',1000 UNION ALL SELECT '星期二',2000 UNION

IT忍者神龟之Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中 2. 建立数据库间的 dblink,然后用 create table B as select * from [email protected] where ...,或 insert into B select * from [email protected] where ... 3. exp A 表,再 imp 到

CASE函数用法:相当于switch..case:,能够实现等值判断,也可以做范围判断 相当于if...else

--CASE函数用法:--1.相当于switch..case:,能够实现等值判断--语法:--case 字段/表达式 --判断指定折字段或者表达式的值,它不能判断null值,因为null不是一个具体的值-- when 值 then '自定义值'-- when 值 then '自定义值'-- else '前面都不满足的情况'--end--特点:-- 1.会生成一个新列-- 2.then后面的值的类型需要一致select StudentNo,StudentName,case ClassId when

SQL中if exists用法细节

用if exists建表[转] 1 判断数据库是否存在 Sql代码 if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名]  if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名] 2 判断表是否存在 Sql代码 if exists (select * from sysobjects w