精华内容
下载资源
问答
  • 1.根据某字段不同表不同表 2.根据字段不同查询条件不同

    两种情况的模板例:

    1.根据某字段不同连表不同表

    type = 1:联商品表
    type = 2:联项目表

    select t1.id,
    
    case
    when t1.type = 1 THEN t3.product_name
    END as product_name,
    
    case
    when t1.type = 2 THEN t4.project_name
    END as project_name
    
    from bus_order_item t1
    left join bus_order t2 on t1.order_id = t2.id
    left join bus_product t3 on t1.product_id = t3.id
    left join bus_project t4 on t1.project_id = t14.id
    

    2.根据字段不同查询条件不同

    SELECT t1.id,
    
    CASE
    WHEN t1.type = 1 THEN t3.product_name
    END ASproduct_name,
    
    CASE
    WHEN t1.type = 2 THEN t4.project_name
    END as project_name
    
    from bus_order_item t1
    LEFT JOIN bus_order t2 on t1.order_id = t2.id
    LEFT JOIN bus_product t3 on t1.product_id = t3.id
    LEFT JOIN bus_project t4 on t1.project_id = t14.id
    
    WHERE
    CASE
    	WHEN t1.type = 2 THEN DATEDIFF(t1.create_date,NOW()) = 0
    	WHEN t1.type = 1 THEN 1 = 1
    END
    AND 1 = 1
    

    3.根据值不同查询不同字段(并拼接)

    select t1.id,
    case when t2.grade is null then '0分' else CONCAT(t2.grade,'分') end grade,
    t1.assess_date,t3.nurse_name
    #CONCAT(t2.grade,'分') as grade
    from bus_assess_his t1 
    LEFT JOIN bus_assess_his_item t2 ON t1.id = t2.assess_his_id 
    LEFT JOIN bus_nurse t3 ON t1.nurse_id = t3.id
    where t1.patient_id = 70
    ORDER BY t1.create_date DESC
    
    展开全文
  • 查询两张表不同字段

    千次阅读 2019-03-14 11:42:21
    ##Oracle查询两张表中不同字段 #使用系统all_col_comments #基本思路是,先查出相同字段,然后使用 not in –查询两张不同字段名 oracle select column_name from all_col_comments where table_name in...

    ##在Oracle中查询两张表中的不同字段
    #使用系统表all_col_comments
    #基本思路是,先查出相同字段,然后使用 not in

    –查询两张表的不同字段名 oracle
    select column_name
    from all_col_comments
    where table_name in (table_a,table_b)
    and owner=owner_1
    and column_name not in
    (select a.column_name
    from
    (select * from all_col_comments t where t.table_name=table_a and owner=owner_1) a,
    (select * from all_col_comments t where t.table_name=table_b and owner=owner_1) b
    where a.column_name=b.column_name);

    展开全文
  • 1、附各的情况:!... 2、查询语句:!...3怎样查询出mgr_business表中apply_user_id(关联申请人名称),first_approve_user_id(关联一级审批人姓名),second_approve_user_id(关联二级审批人姓名)? 谢谢!
  • 开发过程,有时因数据库设计者未考虑周到,业务实体有一个属性没有对应的字段,因此需要数据库加一个字段,又由于此字段要求不可为空,并且开发阶段,测试数据不多,有时是drop掉了原来的,增加了一个...

    需求背景

    项目设计数据库表时是否需要在表中加备用预留字段?

    背景:以前做项目,有用过SSH框架,或者SSM框架,数据库有Oracle,DB2。在开发过程中,有时因数据库设计者未考虑周到,业务实体有一个属性没有对应的字段,因此需要在数据库表加一个字段,又由于此字段要求不可为空,并且在开发阶段,测试数据不多,有时是drop掉了原来的表,增加了一个字段再重新建了一张表。有时一些表,设计表时会在后面加几个类型为varchar的预留字段

    最近和朋友聊到这个问题,就是:为什么要这么做,好处是什么,怎么权衡这个问题

    在遇到这个问题之后引起我思考预留字段这个通用的做法是否能减少开发阶段由于考虑不周到,或后续维护阶段因为需求变更或者扩展改造而需要增加字段而造成的麻烦?

    就此与一些朋友进行了讨论,根据以往的项目经验和设计原则给出了一些解答,以及怎样的设计能确保数据库健壮,可扩展。大家意见不一,以下是正反方的一些意见和看法。

    解决方案

    ———————————————

    正反观点:需要
    原因:
    1. 持久层的设计,数据库表结构不应轻易变更。因此应设置备用字段。启用备用字段后,只修改代码,在代码中增加注释和并文档说明即可,不需要改动数据库结构,更方便
    2. 如果没有备用字段,如果后期要加字段的话,用add column的方法会改变原先的数据库存储结构,造成数据移动,移动需要时间,而且会移动到其他数据块,add column会影响数据库性能

    3. 对于反方提到的规范问题,只要代码和文档规范是可以避免这样的问题的,即使遇到这样的问题,也比修改表名带来的危险要小,除了要修改代码、存储过程、配置文件中的表名,还要考虑数据的迁移等问题,如此多的改动难免会出现这样那样的问题,因此保证系统的稳定性来看,携带几个扩展字段为了后续使用也无妨。

     

    ———————————————

    反方观点:不需要

    1. 如果要预留字段的话,第一个需要全面考虑的问题,如何评估:
        a. 预留多少个字段;
        b. 预留什么类型的;
        c. 预留的字段不适用怎么办——比如长度/精度不够;
        d. 预留的字段允许不允许空值呢;
    2. 数据库设置备用字段无法在字段名上体现其意义,不规范,后期维护麻烦。在需要增加字段的时候如果直接add column,也不会有太大工作,但能保证数据库字段的规范。虽然在启用备用字段的时候可以文档说明,但在POJO上对应其属性为attribute1,attribute2等,代码的可读性不强。而且,预留字段全部统一为varchar,也不太合适。

    3. 预留字段毕竟是数据库表字段,会占用数据库存储空间

    4. 添加字段出现的性能问题,我之前的项目中一般都是定期对数据库进行数据整理、重组操作

     

    各方案都有不同的侧重点,最终的你会选择选择哪种方案呢?

     

    ——————————————————————————————

    CSDN有另一篇博文,地址是:http://blog.csdn.net/iw1210/article/details/44752771

    分析也很不错,给出了相应的解决方案,详细内容如下:

     

    数据库设计误区:备用字段 / 保留字段 / 预留字段

    【现象描述】
    在数据表中,不仅设计了当前所需要的字段,而且还在其中留出几个字段作为备用。
    比方说,我设计了一个人员表(Person),其中已经添加了各种必要的字段,包括姓名(Name)、性别(Sex)、出生年月日(birthday)等等。大功告成之后,我忽然想到,将来系统中应该还会有很多其它与人相关的内容吧,比方说毕业院校,比方说工作单位等等,尽管现在根本不需要填写,以后可能还是会用到的吧。拍脑袋一项,那就加入5个varchar2型的字段,分别叫做Text1、Text2……Text5,然后又想,应该还有一些日期型的字段需要备用,就又建立了三个date型的字段,分别起名叫做date1、date2、date3,……


    【原因分析】
    大家应该已经看出问题了,在这个数据表中存在大量暂时无用的字段,我们可以称之为备用字段,它们的作用是什么呢?就是以防万一,防备可能的情况。
    这似乎可以叫做防患于未然,等到需要的时候,就不需在表中增加新的字段了,而且这样做的话,一个表的数据应该会被存储在相邻的物理空间中,这对于性能也是有好处的。
    另外的原因就是,在古老的数据库中,如果改变数据库的定义(包括增加字段、改变字段的类型、删除字段等等),那么其中所有的数据就会丢失,所以这项工作非常麻烦,我们需要先建立临时表,将数据备份出来,然后创建新表,将数据导入其中,最后再删除原来的表。


    【问题所在】
    这样的做法对于项目会导致很多问题,而且原先想要解决的问题并不一定能够解决,不信的话,请往下看。
    问题一:增加大量备用字段,必定会浪费很多空间,尽管其中可能都没有具体的数据,但是仅仅是空字段也会占据一定的空间的。
    问题二:由于命名的特点,如果没有完善的文档管理流程,用不了多久(可能也就是两三年),就没有人能够说清楚到底哪个字段代表的是什么意义了。就算有文档管理,这些管理工作也会比较麻烦,而且在每次使用的时候都需要申请,还有可能会出现冲突的情况。
    问题三:增加了这些备用字段就真的会够用吗?不一定,因为我们只是每个类型的字段留出几个备用,如果数量超过,或者要使用特殊的、不常用的类型的时候,还是需要增加新的字段。比方说在上述的Person表中,我们要存储照片,那么可能就要增加一个blob类型的photo字段,这在初期设计的时候可不一定会留出这样的备用字段。而且如果没有完善的管理,谁又能说清楚倒底哪个字段已经被使用,哪个字段还可以使用呢?到时候还不是要增加新的字段。


    【解决方案】
    其实上面的这种设计方式就是一种“过度设计”,我们应该做的就是“按需设计”,在经过详细有效的分析之后,在数据表中只放置必要的字段,而不要留出大量的备用字段。
    当需要增加相关的信息的时候,就要具体情况具体分析:
    1. 如果数量很少,而且信息的性质与原表密切相关,那么就可以直接在原表上增加字段,并将相关的数据更新进去;
    2. 如果数量较大,或者并非是原表对象至关重要的属性,那么就可以新增一个表,然后通过键值连接起来;
    3. 对于表的数据的存储位置所导致的性能问题,我们可以通过在特定时间对数据库的数据进行重组来解决,而这项工作对于长期运行的数据库来说,也是需要定期进行的。

     

    ------------------------------------------------------

    ------------------------------------------------------

     

    关于我(个人域名)

    我的开源项目集Github

     

    期望和大家 一起学习,一起进步,共勉,O(∩_∩)O谢谢

    如果你有任何建议,或想学习的知识,可与我一起讨论交流

    欢迎交流问题,可加个人QQ 469580884,

    或者,加我的群号 751925591,一起探讨交流问题

    不讲虚的,只做实干家

    Talk is cheap,show me the code

     

    展开全文
  • (CASE WHEN PI.PAGE_TYPE_ID = ‘002’ THEN CP.TITLE else GT.f_goods_type_name END) GOODS_SOURCE

    (CASE
    WHEN PI.PAGE_TYPE_ID = ‘002’ THEN
    CP.TITLE
    else
    GT.f_goods_type_name
    END) GOODS_SOURCE

    展开全文
  • python根据excel不同字段将工作拆分为不同工作簿
  • 我用kettle从一个数据库表中读取数据,有一个字段A,然后想根据另外一个数据库表中的一个字段A对这部分数据进行过滤,筛选出数据中字段A第二张表的字段A的记录,不同数据库不太好联查,而且数据量有点大 ...
  • 设计冗余字段的思考

    千次阅读 2018-04-22 15:18:41
    世界上最遥远的距离不是我不能...简而言之,第三范式(3NF)要求一个关系不包含已其它关系已包含的非主关键字信息。例如,存在一个部门信息,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。...
  • ARCGIS想要快速选中属性表中相同字段不同值的要素,除了“按属性选择的or有没有别的快速方法啊,数据较多,反复的OR太慢了,且容易出错
  • ArcGIS属性表中根据某一字段进行分组编号

    千次阅读 热门讨论 2019-11-09 23:51:42
    使用ArcGIS处理数据过程,常会遇到对属性计算的问题,如自动编号、分组编号等等。 近日,一个项目的数据处理过程,便遇到了一个分组编号的问题。 如下图,Name字段多个相同值,需要根据这一字段进行分组...
  • 查询,查询表中字段值相同的数据
  • 读完本文,你将会学到: 1、类定义的field字段是如何class文件组织的 2、不同的数据类型class文件是如何表示的 3、static final类型的field字段的初始化赋值问题
  • a a.id,a.count b b.id ,b.to_id,b.from_id,b.rel 其中 a.id=to_id u u.userid, u.name c c.id,c.userid d d.id, d.userid f f.id,f.userid 其中 if (b.rel =“c ”)b.from_id=c.id else if (b.rel =...
  • 要求,在表table1中字段a发生改变时,触动字段b发生改变,字段b的值为table2中字段a对应的字段c的值。 create or replace trigger tr_table1 before update of a on table1 referencing old as old_...
  • 字段类型与合理的选择字段类型

    千次阅读 2017-01-12 23:04:26
    本篇博客稍微有点长,它实际上包括两个内容:一是mysql字段类型的...许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分(UNSIGNED)或
  • 需求点:分组查询出选择不同班级,不同学科,不同时间报名每组的总人数及总成绩 mysql:SELECT subject,DATE_FORMAT(sign_up_time,'%Y-%m-%d'),class_name,SUM(users_quantum) AS users_quantum,SUM(score)AS ...
  • 比如有表格go_shoplist,字段为id,qishu,maxqishu 查询的记录为.qishu与maxqishu相同的行. select * from `go_shoplist` where qishu=maxqishu           下面的写法也正确,模拟联查询其实查询的是同...
  • 进行数据库操作时,有时我们需要把两个关联表中的某个字段同步,即把1中字段A的值赋值到2的字段B1和2通过字段C关联。SQL语句如下所示(Sql sever 和MySql的写法稍有不同):SQL Sever:写法1: update ...
  • 数据库设计设置主键的字段是不会重复的、唯一的,如果有其他字段也需要保持唯一性应该如何设置呢?比如一个保存用户信息的表里要保证每条记录的手机号都不同。这时候就需要对该字段设置唯一性。 设置唯一性后的...
  • user_id= users.id ) AS secondName FROM absence 方式二:(关联多次,每次关联一个字段) SELECT n.id, m.name, q.name FROM absence LEFT JOIN users m ON n.first_user_id= m.id LEFT JOIN users q ON n.second_...
  • MySQL order by基于不同字段条件排序

    千次阅读 2019-11-16 10:19:38
    做需求的过程,产品要求页面查询数据的时候,某个字段的不同值的基础上再选择不同字段进行排序,具体需求如下: 1:首先有一个基础字段follow_up_type,follow_up_type的取值分别为:1、2、3、4 2:先对...
  • 数据库类型和字段类型

    万次阅读 2018-07-06 09:37:07
    类型:Mysql类型都有哪些是一定需要知道的,下面就为您介绍七种Mysql类型,希望能对您学习Mysql类型有所帮助,需要的朋友可以了解下 学习Mysql数据库,Mysql类型都有哪些是一定需要知道的,下面就为您介绍...
  • 1.我们有1,2,3,需要根据1字段的值的不同分别与23关联 1结构为: Table1  字段:id based_num aid  1 0 33  2 1 22 Table2 字段:id n
  • 但是在不同的数据库我们可以用不同字段类型来存储日期,比如我们可以用整型数字字段来存储日期时间,也可以用字符串类型的字段来存储日期时间,当然也可以用各种数据库提供日期类型的字段来存储日期时间,但是我们...
  • ArcGIS - 跨属性进行字段计算

    千次阅读 2020-02-27 18:58:09
    属性添加字段用于存放计算结果 选择其中一个图层 - 打开属性 - 左上角的选项 - 添加...主页面菜单栏空白处右键 - 选择编辑器 - 选择编辑器 - 开始编辑 - 回到属性 - 新建的用于储存计算结果的字段右键 ...
  • 有两个字段A,B。先对A进行分组,对A进行分组的条件下,将B字段都不为空的数据筛选出来。这个的语句怎么写,求大佬指点迷津一下。
  • Mysql 查看获取 注释 或 字段注释

    千次阅读 2019-10-31 16:58:31
    目前常用的,获取 表中字段的注释的方式,主要是使用 information_schema 数据库,然后查看每个的元数据; 例: use information_schema; select * from TABLES where TABLE_SCHEMA='数据库名' and TABLE_...
  • 将table_B里一部分字段数据插入到table_A insert into table_1 (name, status) select name, source from table_B
  • 数据表里有一个字段(a)用来区分不同类型的数据,只有两种类型。 除a外其他字段有三个。 现在有实现根据a的值给其他字段添加不同别名。 主要难点在于,我需要用除a外的三个字段查询出6个字段的值用于桌面展示,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 361,783
精华内容 144,713
关键字:

在表中选择不同的字段