SQL优化问题

AHUA1001 2013-01-11 04:39:08
我遇到的问题有点复杂,不是三言两语就可以说清楚的,我总结了一下,满足以下要求即可。
1、有一个表A,有6个字段,字段内容如下:
一、员工身份证号码(唯一,不为空。)
二、员工姓名
三、家属身份证号码(唯一,不为空。)
四、家属姓名
五、关系(只有两个值,配偶或者子女)
一个员工,可能有一个配偶和子女各一个(只考虑一个子女);也可能只有配偶,没有子女;也可能只有子女没有配偶。
2、现在需要用一个SQL语句,显示以下内容:
员工姓名、员工身份证号码、配偶姓名、配偶身份证号码、子女姓名、子女身份证号码
如果一个员工既有配偶又有子女就都显示,缺失的信息就显示空。
3、最关键的问题,只可以读取一次表A,否则会对其他的功能产生影响。

请问语句应该如何写,最好考虑一下性能问题。
...全文
216 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
筱伟 2013-01-12
  • 打赏
  • 举报
回复
一、员工身份证号码(唯一,不为空。) 五、关系(只有两个值,配偶或者子女) 如果一个员工既有配偶又有子女就都显示 这个表设计有矛盾,身份证唯一,关系两个值,如果既有配偶又有子女,要显示在同一行,岂不是关系变成三个值,如果不显示在同一行,岂不是员工身份不唯一~!
crazy_samba 2013-01-12
  • 打赏
  • 举报
回复
你表A的设计决定了没办法只读一次。你的表设计有问题,当某人既有配偶又有子女时,一位员工就会在A中出现两行,会导致信息冗余。 A应该设计成这样: 一、员工身份证号码(唯一,不为空。) 二、员工姓名 三、配偶身份证号码(唯一,不为空。) 四、配偶姓名 五、子女身份证号码(唯一,不为空。) 六、子女姓名
  • 打赏
  • 举报
回复
五、关系(只有两个值,配偶或者子女) 如果身份证唯一 那么只能有一行数据咯 如果有配偶和子女 这里面值是怎么显示的?
  • 打赏
  • 举报
回复
decode判断就行了

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧