0 0

SQL查询问题30

两张表A,B

A中字段:p_name,in_time

B中字段:p_name,over_time

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

假设A中记录为:张三 , 10

假设B中记录为:张三 , 100

执行: select   a.p_name ,   in_time ,   over_time   from   A a ,   B b   where   a.p_name  =  b.p_name;

得到: p_name    in_time    over_time

                张三        10           100

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

当A中无记录,B中记录为:张三 , 100

怎么能得到下面的结果:

         p_name     in_time      over_time

            张三            0                 100

 

当B中无记录,A中记录为:张三 , 10

怎么能得到下面的结果:

         p_name     in_time      over_time

            张三           10                  0

 

这种情况下按上面的语句,啥也得不到。

 

各位大侠,谁能帮忙看看怎么才能在下面两种情况下

能实现无记录的一方为0呀,谢谢了!

3个答案 按时间排序 按投票排序

0 0

采纳的答案

上面的两种情况mysql 分别可以这样:

select   a.p_name , in_time ,
    case when over_time  is null then 0 else over_time end
   from   A left join B on a.p_name  =  b.p_name;

select   b.p_name ,
        case when in_time  is null then 0 else in_time end,
        over_time   
        from   B left join A on a.p_name  =  b.p_name;

最后你需要的mysql可以这样:

select p_name,in_time,0  from a where a.p_name not in (select a.p_name from a,b where a.p_name = b.p_name) union

select p_name,0,over_time from b where b.p_name not in (select a.p_name from a,b where a.p_name = b.p_name) union

select a.p_name,in_time,over_time from a,b where a.p_name = b.p_name

2013年2月03日 12:21
0 0

db2的可以更简洁点:
select  a.p_name , coalesce(in_time,0) , coalesce(over_time,0)
from   A full join B on a.p_name  =  b.p_name;
这个语句可以实现你说的以上两种情况

2013年2月20日 21:40
0 0

SELECT CASE
         WHEN N1 IS NULL THEN
          N2
         ELSE
          N1
       END P_NAME,
       NVL(IN_TIME,0) IN_TIME,
       NVL(OVER_TIME,0) OVER_TIME
  FROM (SELECT A.p_name N1, B.p_name N2, A.in_time, B.over_time
          FROM B
          full JOIN A ON A.p_name = B.p_name);
oracle的写法不知道mysql可用不,优化表结构比较好

2013年2月04日 16:58

相关推荐

    SQL查询问题的图片

    SQL查询问题的图片 这是我在 论坛里所发贴: “Sql查询问题,急!!“如何按天、周、月、季度、年 进行分组查询”[问题点数:20分] URL:...

    oracle SQL查询工具

    oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    Microsoft SQL Server 2008技术内幕:T-SQL查询

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化...

    Sql查询分析器

    "Sql查询分析器"是一款专为SQLServer设计的实用工具,它使得用户可以直接与数据库进行交互,执行SQL查询,从而高效地管理和分析数据。这款工具的便捷之处在于,它是一个可执行的exe文件,无需安装,只需解压缩后直接...

    基于 Deepseek 模型生成 SQL 查询语句的 Python 源码

    Deepseek模型是一种先进的深度学习模型,主要用于理解和生成SQL查询语句。这种模型能够根据用户给出的特定需求,自动生成相应的SQL查询语句。对于数据操作人员来说,这无疑是一个非常强大的工具,可以大大提高工作...

    经典的SQL查询语句,将内容作为字段查询

    当我们谈论“经典的SQL查询语句,将内容作为字段查询”时,我们通常是指在SQL中使用内容作为查询的一部分来检索特定数据。这样的查询对于数据分析师、数据库管理员以及任何需要从大量数据中提取信息的人来说至关重要...

    sql server 2005 技术内幕t-sql查询源码

    《SQL Server 2005 技术内幕:T-SQL查询源码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中使用的SQL扩展版本,它在标准SQL的基础上增加...

    典型SQL练习题

    首先,"PracticeOfSqlQuery.doc"可能是一个文档,详细列出了各种SQL查询问题,这些题目涵盖了SQL的基础和进阶操作。以下是一些可能包含在文档中的常见SQL查询类型: 1. **选择查询(SELECT)**:这是最基础的查询,...

    SQL查询结果进行拼接

    SQL查询结果拼接

    Microsoft_SQL_Server_2005技术内幕:T-SQL查询.pdf

     深入理解T-SQL体系结构,充分利用高级T-SQL查询技术。  本书深入介绍了T-SQL的内部体系结构,揭示了基于集合的查询的强大威力,并包含大量来自专家们的参考和建议。通过本书提供的最佳实践和示例代码,数据库开发...

    Microsoft SQL Server 2008技术内幕:T-SQL查询

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    VB编程源代码 71一次SQL查询中获得多个查询数值

    VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL查询中获得多个查询数值VB编程源代码 71一次SQL...

    Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

    《Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中用于数据操作、查询、存储过程...

    Microsoft SQL Server 2008技术内幕:T-SQL查询.pdf

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威指南。T-SQL是微软SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及...

    sqlserver如何快速查询死锁语句

    以下是一段SQL查询语句,用于找出所有未提交事务的详细信息: ```sql SELECT spid, blocked, waittime, waittype, waitresource, p.dbid, cpu, physical_io, memusage, open_tran, status, login_time, last_batch...

    extjs 在线sql查询

    在“在线SQL查询”这个场景中,ExtJS 被用来构建一个用户界面,允许用户在浏览器中直接执行SQL查询,这对于数据库管理或数据分析来说非常方便。 `Ext.ux.window.VisualSQLQueryBuilder` 是ExtJS的一个扩展组件,...

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录.zip

    《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威书籍。T-SQL是SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及...

    最全sql查询语句练习题汇总(面试必备)

    最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习...

    SQL查询分析器sql server专用

    SQL查询分析器是数据库管理员和开发人员用于调试和优化SQL Server数据库中的SQL语句的强大工具。这个专用的SQL Server查询分析器集成了多种功能,帮助用户高效地处理SQL查询,提高数据库性能。以下是对这些文件及其...

    可视化sql查询语句生成器

    可视化SQL查询语句生成器是一种高效且用户友好的工具,专为那些不熟悉或不习惯编写SQL代码的用户设计。这种工具通常具有图形用户界面(GUI),允许用户通过直观的界面来构建复杂的查询,而无需直接输入SQL命令。在...

Global site tag (gtag.js) - Google Analytics