是否可以将包含特定数据的行放在SQL中的第一行?

是否可以将包含特定数据的行放在SQL中的第一行?,sql,Sql,假设我有一张桌子: 我希望每次在SQLQuery中选择此表时,带有UserId='ee'的行始终显示在第一行 可能吗 使用视图: CREATE VIEW myView AS SELECT * FROM myTable ORDER BY (case when UserId = 'ee' then 0 else 1 end) ASC 使用视图: CREATE VIEW myView AS SELECT * FROM myTable ORDER BY (case when UserId = 'ee

假设我有一张桌子:

我希望每次在SQLQuery中选择此表时,带有
UserId='ee'
的行始终显示在第一行

可能吗

使用视图:

CREATE VIEW myView AS
SELECT * FROM myTable ORDER BY (case when UserId = 'ee' then 0 else 1 end) ASC
使用视图:

CREATE VIEW myView AS
SELECT * FROM myTable ORDER BY (case when UserId = 'ee' then 0 else 1 end) ASC
您可以使用or IF子句更改为order

示例:

SELECT * FROM
Table
ORDER BY (CASE WHEN UserID = 'ee' THEN 1 ELSE 2 END) ASC, UserID ASC

通过这种方式,您可以给te ee值1和所有其他值2,并按这些数字排序。订购时,您可以通过用户ID本身订购重复的2。

您可以使用or IF子句更改为订购

示例:

SELECT * FROM
Table
ORDER BY (CASE WHEN UserID = 'ee' THEN 1 ELSE 2 END) ASC, UserID ASC


通过这种方式,您可以给te ee值1和所有其他值2,并按这些数字排序。当这些被排序时,你可以通过用户ID自己排序重复的2。

通常你会使用order by子句。通常你会使用order by子句。Double equal是C语言的东西,不确定它在SQLThank@theMayer:)中是否能工作,这总是让我感到(出于某种原因,写“form”而不是“from”)@giorgiga谢谢。我还研究了有关订单管理的更多细节。SELECT步骤生成一个虚拟表,其中还包括一些“影子”列/表达式(所有列/表达式都在ORDER BY子句中,但不在SELECT列表中)
当UserId='ee'时按大小写排序,然后0 else 1 end
将0放入UserId='ee'行others 1的阴影列中,并按阴影列的顺序选择集合。我们还可以将值0更改为“a”,将值1更改为“b”,然后根据字符优先级按顺序选择集。希望这对像我这样的初学者有所帮助。以上是我学习的概念:这也是一个解决方案。如果表中的一列包含比其他列更高的排序优先级值,则当UserId='ee'然后是'column1 name'或'column2 name'结束时,您可以按大小写从表中选择*,这将把column1值放入UserId='ee'行的阴影列,把column2值放入其他行。确保你非常了解你的列值,否则它将导致无法想象的排序结果。Double equal是一种C语言的东西,不确定它是否能在SQLThank@theMayer:)中工作,这总是让我着迷(出于某种原因,写“form”而不是“from”)@giorgiga谢谢。我还研究了有关订单管理的更多细节。SELECT步骤生成一个虚拟表,其中还包括一些“影子”列/表达式(所有列/表达式都在ORDER BY子句中,但不在SELECT列表中)
当UserId='ee'时按大小写排序,然后0 else 1 end
将0放入UserId='ee'行others 1的阴影列中,并按阴影列的顺序选择集合。我们还可以将值0更改为“a”,将值1更改为“b”,然后根据字符优先级按顺序选择集。希望这对像我这样的初学者有所帮助。以上是我学习的概念:这也是一个解决方案。如果表中的一列包含比其他列更高的排序优先级值,则当UserId='ee'然后是'column1 name'或'column2 name'结束时,您可以按大小写从表中选择*,这将把column1值放入UserId='ee'行的阴影列,把column2值放入其他行。确保您非常了解列值,否则将导致无法想象的排序结果。小nit,但我认为case子句的性能比直接条件语句稍差。:)我的两个示例的运行时间完全相同,计算结果相同(选择>排序>计算标量>表扫描)。你给我举了一个例子来说明你说的直接条件是什么?教我:)对于一张小桌子来说,这种差异是无法察觉的。我们讨论的优化将应用于1M+行范围。nit很小,但我认为case子句的性能比直接条件语句稍差。:)我的两个示例的运行时间完全相同,计算结果相同(选择>排序>计算标量>表扫描)。你给我举了一个例子来说明你说的直接条件是什么?教我:)对于一张小桌子来说,这种差异是无法察觉的。我们讨论的优化将适用于1M+行范围。
SELECT * FROM 
Table
ORDER BY IIF(UserID = 'ee', 1, 2) ASC, UserID ASC