有什么方法可以从特定记录开始写入选择记录?假设我有一个包含以下数据的表:

 SNO    ID  ISSUE
 ----------------------
   1    A1  unknown
   2    A2  some_issue
   3    A1  unknown2
   4    B1  some_issue2
   5    B3  ISSUE4
   6    B1  ISSUE4


我可以编写一个选择来开始显示以B1开头的记录,然后显示其余记录吗?输出应该是这样的:

4    B1  some_issue2
6    B1  ISSUE4
1    A1  unknown
2    A2  some_issue
3    A1  unknown2
5    B3  ISSUE4


B3是否最后一个都没有关系,只应该首先显示B1。

最佳答案

取决于您提前知道的内容的几个不同选项(即您想成为第一条记录的ID,sno等):

联合方式:

select   1 as sortOrder, SNO, ID, ISSUE
from     tableName
where    ID = 'B1'
union all
select   2 as sortOrder, SNO, ID, ISSUE
from     tableName
where    ID <> 'B1'
order by sortOrder;


案例陈述按以下顺序排列:

select   SNO, ID, ISSUE
from     tableName
order by case when ID = 'B1' then 1 else 2 end;


您也可以考虑使用临时表,CTE等,但是这些方法的性能可能会降低...在您的环境中尝试几种不同的方法以查看哪种方法最有效。

关于sql - sql select从特定记录开始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1835147/

10-15 12:42