现有几种实现方式,请问各的优点和劣势,哪种比较好。 1、select 姓名,case when (select 地区名称 from table2 where table2.地区代码=table2.地区 ) is null then table1.地区 else (select 地区名称 from table2 where table2.地区代码=table2.地区 ) end as 地区名称 from table1 2、select a.姓名,isnull(b.地区名称,a.地区) as 地区名称 from table1 a left join table2 b on a.地区=b.地区代码 在这里,连接查询比子查询要好,呵呵
来学习学习,呵呵
數據量不大,應該考慮用子查詢。
数据库有下表
table1
代码 姓名 地区
01 张三 001
02 李四 002
03 王五 003
table2
地区代码 地区名称
001 南宁
002 柳州
结果:
姓名 地区名称
张三 南宁
李四 柳州
王五 003
现有几种实现方式,请问各的优点和劣势,哪种比较好。
1、select 姓名,case when (select 地区名称 from table2 where table2.地区代码=table2.地区 ) is null then table1.地区 else (select 地区名称 from table2 where table2.地区代码=table2.地区 ) end as 地区名称 from table1
2、select a.姓名,isnull(b.地区名称,a.地区) as 地区名称
from table1 a
left join table2 b on a.地区=b.地区代码 在这里,连接查询比子查询要好,呵呵
2 不用子查询,那么连接查询在连接很多表的情况下,要注意些什么呢?
就是说如果条件语句中已有对A表中的数据查询,已经扫描过了,如果你的子查询中又用到了A表,它还是会查询一次,不会因为它上层查询而不进行全面扫描,如果套的层次越多,曾相当于N*N*N..次查询