需求:

mysql 查询后根据值的不同进行判断与修改

语法结构:

SQL中的条件判断语句(case when zhen)用法

SELECT A.品号,属性,

       CASE

           WHEN A.属性 = 'S' THEN

               B.价格

           WHEN A.属性 = 'P' THEN

               C.价格

       END   价格

FROM A

    LEFT JOIN B

        ON B.品号 = A.品号

    LEFT JOIN dbo.C

        ON C.品号 = A.品号;

案例:

结果:     

SQL语句:

--测试数据
if not object_id(N'A') is nulldrop table A
Go
Create table A([品号] int,[属性] nvarchar(21))
Insert A
select 1001,N'S' union all
select 1002,N'P'
GO
if not object_id(N'B') is nulldrop table B
Go
Create table B([品号] int,[价格] int)
Insert B
select 1001,8
GO
if not object_id(N'C') is nulldrop table C
Go
Create table C([品号] int,[价格] int)
Insert C
select 1002,5
Go
--测试数据结束
SELECT A.品号,属性,CASEWHEN A.属性 = 'S' THENB.价格WHEN A.属性 = 'P' THENC.价格END 价格
FROM ALEFT JOIN BON B.品号 = A.品号LEFT JOIN dbo.CON C.品号 = A.品号;

语法详解:

case具有两种格式。简单case函数和case搜索函数。这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和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

--比如说,下面这段sql,你永远无法得到“第二类”这个结果
case when col_1 in ('a','b') then '第一类'
     when col_1 in ('a') then '第二类'
     else '其他' end

示例:

如下users表:

上表结果中的"sex"是用代码表示的,希望将代码用中文表示。可在语句中使用case语句:

如果不希望列表中出现"sex"列,语句如下:

将sum与case结合使用,可以实现分段统计。如果现在希望将上表中各种性别的人数进行统计,sql语句如下:

拓展:


拓展一:
create table 表A(品号 varchar(10),属性 varchar(10))

insert into 表A(品号,属性)
 select '1001','S' union all
 select '1002','P'

create table 表B(品号 varchar(10),价格 int)

insert into 表B(品号,价格)
 select '1001',8

create table 表C(品号 varchar(10),价格 int)

insert into 表C(品号,价格)
 select '1002',5

select a.品号,
       a.属性,
       d.价格
 from 表A a
 inner join (select 品号,价格 from 表B
             union all
             select 品号,价格 from 表C) d on a.品号=d.品号

/*
品号         属性         价格
---------- ---------- -----------
1001       S          8
1002       P          5

(2 row(s) affected)
*/



mysql 查询后根据值的不同进行判断与修改,SQL中的条件判断语句(case when zhen)用法相关推荐

  1. Mysql查询某字段值重复的数据个数

    说明:表:survey_consumer,字段:province ,统计字段:count 语句说明:查询出survey_consumer表中province字段两个及以上相同的数据(没有重复的数据不会 ...

  2. mysql查询出现毫秒值快速解决方法

    mysql查询出现毫秒值快速解决方法 出现了这个问题,你就去看一你的dto和数据库里面的格式是否是对照的,如果你数据库里面保存时间的格式是datetime,那么dto的接收类型应该是Date,但是这种 ...

  3. MYSQL查询后出现中文乱码怎么办

    MYSQL 查询后出现中文乱码 解决方案:输入set names gb2312 后回车 然后再次查询

  4. mySql 查询当天、本周、最近7天、本月、最近30天的语句

    mySql 查询当天.本周.最近7天.本月.最近30天的语句 原创 2017年04月13日 16:40:38 标签: 962 编辑 删除 -- 当天 SELECT * FROM 表名 WHERE wh ...

  5. mysql查询后10条数据类型_30多条mysql数据库优化方法,千万级数据库记录查询轻松解决...

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  6. mysql 查询后怎么定位列_MySQL如何定位并优化慢查询sql

    1.如何定位并优化慢查询sql a.根据慢日志定位慢查询sql SHOW VARIABLES LIKE'%query%'     查询慢日志相关信息 slow_query_log 默认是off关闭的, ...

  7. python循环次数查询_大数据量Mysql查询后经过循环使用python分片

    1 问题描述: (1)使用mysql查询基础数据,这里只有三四个基础的查询条件,联了一个表,同时有limit分页了: (2)之后经过一系列逻辑处理,在这些处理中又包含了很多sql查询,而且是在第(1) ...

  8. .net一个函数要用另一个函数的值_【195期】MySQL中的条件判断函数 CASE WHEN、IF、IFNULL你会用吗?...

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅 阶段汇总集 ...

  9. 怎么做mysql查询系统_mysql数据库系统学习(一)---一条SQL查询语句是如何执行的?...

    一.第一节:一条sql查询语句是怎样执行的 5.5.5版本以后,默认使用存储引擎为InnoDB 不使用查询缓存,MySQL8.0没有查询缓存这个功能 总体来说:MySQL分为service层和存储引擎 ...

最新文章

  1. Java凝视Annotation
  2. java最最长的错误,Java开发中遇到最多的异常是什么?最后一个最多最难!
  3. Linux 初始root密码设置
  4. 【c++】0.C++笔记
  5. mysql 5.5 替换字符_Mysql 5.7替换表中某些字段的字符串
  6. 重学ES6 模板字符串
  7. 那些功能逆天,却鲜为人知的pandas骚操作
  8. [转载]C#时间函数
  9. Cache之全相连映射
  10. js爬取网页文字图片 html爬取网页信息
  11. VS2015社区版MFC安装
  12. 整车控制器(VCU)开发 之 概述
  13. C++:设计模式之命令模式(例子)
  14. 小满网络模型http1-http2 浏览器缓存
  15. 与ck读音相同的单词有哪些
  16. C# 使用Interop.Excel一些报错的对应
  17. 计算机二级考试office
  18. jquery getJSON不执行问题解决
  19. 数据预处理:标称型特征的编码和缺失值处理
  20. matlab的数值微分,Matlab实现数值微分

热门文章

  1. chrome设置黑暗模式的4种方法
  2. 使用chrom访问本地项目需要输入http
  3. 键盘录入长方形的长和宽,定义方法计算该长方形的周长,并在main方法中打印周长
  4. 亚马逊做精品选品怎么选?
  5. Android音量调节的实现(RingtoneManager和RingerVolumePreference)
  6. python导入pyx文件_初学Python,只会写简单的代码。手头有份Python代码,但是调用C模块生成的.pxd和.pyx文件,运行过程总报错,希望大神指点,调试前该做哪些工作呢?...
  7. 带上CSDN一起游国庆
  8. git提示please tell me who you are
  9. vbs服务器bat文件,自动以管理员身份运行批处理bat文件(vbs与bat两种方法)
  10. Audition 入门系列(合集)_MediaTea的博客-CSDN博客