当前位置: 代码迷 >> Sql Server >> 关于子查询别名的有关问题
  详细解决方案

关于子查询别名的有关问题

热度:69   发布时间:2016-04-24 08:46:21.0
关于子查询别名的问题
本帖最后由 kiranet 于 2015-11-05 18:25:58 编辑
数据
--------------------------------(数据A中FLDCPH是没有数据的就是空)
ID   FLDCPH                    STARTTIME
A                                    2015-11-06 15:42:52
B        OXA                   2015-11-05 11:26:30
---------------------------------
查询语句
select * from T1 a where  exists (select 1 from T1 where fldcph=fldcph and   TO_CHAR(a.starttime, 'YYYY-MM-DD HH24:MI')>'2015-11-04 13:47:00')

结果
--------------------------------
ID   FLDCPH                    STARTTIME
A                                  2015-11-06 15:42:52
B        OXA                   2015-11-05 11:26:30
---------------------------------
查询语句
select * from T1 a where  exists (select 1 from T1 where fldcph=a.fldcph and   TO_CHAR(a.starttime, 'YYYY-MM-DD HH24:MI')>'2015-11-04 13:47:00')

结果
--------------------------------
ID   FLDCPH                    STARTTIME
B        OXA                   2015-11-05 11:26:30
---------------------------------

加了别名和不加别名查询知道意思是不一样,但是不知道是什么道理
------解决思路----------------------
前面是列恒等,后面在=两边都是空,SQL里面在=两边都是空的索引
------解决思路----------------------
没别名 fldcph=fldcph 和1=1没啥区别,有别名,这两个fldcph 就不一样了;一个是子查询的一个是外面a的~~
  相关解决方案