我的英语无助于解释我的问题,但我会试一试。
假设我们有一张表(photoId,_bandId,desc)
现在我们有一组记录
1, 1000, TestDesc1
2, 1000, TestDesc2
3, 1010, TestDesc3
4, 1900, TestDesc4
5, 1000, TestDesc5
我试图找到一个选择命令,其中获取特定[_bandId]的所有[desc] 但作为第一个结果我想要一个特定的photoId
我用的是什么,
SELECT * FROM [myTable]
WHERE _bandId = (SELECT _bandId from [myTable] where photoId=2)
这当然是我的输出:
TestDesc1
TestDesc2
TestDesc5
但我真正需要的是输出
TestDesc2
TestDesc1
TestDesc5
亲切的问候 康斯坦丁诺
答案 0 :(得分:3)
添加order by
并将case
作为第一个参数,您可以在其中为首先需要的记录创建一个值,为其他记录创建一个值。之后,您可以添加更多参数,以便对备份记录进行排序,例如在描述:
SELECT
*
FROM
[myTable]
WHERE
_bandId = (SELECT _bandId from [myTable] where photoId=2)
ORDER BY
CASE PhotoId WHEN 2 THEN 0 ELSE 1 END,
[desc]