两个SQL技巧——排序和条件判断

来源:互联网 发布:spfa算法 编辑:程序博客网 时间:2024/05/29 14:36

排序

利用虚拟列完成置顶等特定排序
将状态为2的人,置顶。

SELECT Name,Age,State,Decode(State,2,1,0) as FlagFROM TABLE1 WHERE ....Order by Flag Desc

通过Decode方式增加一列虚拟列,使当state为2的时候,flag值为1,否则为2。然后降序排列flag。

判断

有时候会遇到在sql里加入判断,来分别执行不同的sql语句,比如赋值和语句。赋值通常select case就搞定了。语句可以通过下边这种方式,如有其他方式还请斧正。
场景为:当id为2的时候执行语句1,当id非2的时候执行语句2。

Select Name,Age From Table1 Where (id=2 And 语句1)  OR (id<>2 And 语句2)...

当id为2时,进入到or前,由于后面只是一个条件语句,并不会起作用。如果id不为2时,通过OR的作用,整句话的条件选择就变为语句2。这样可以在sql中达到条件选择的作用。