SQL:查询,用于获取按列值排序的行,并首先获取该列中具有concret值的行

时间:2010-11-08 12:42:37

标签: sql

我想进行一个查询,获取按列值排序的行,同时我希望它首先获取 在该列中具有concret值的行。

例如:

it
es
fr
it
es
fr

如果我想首先用“es”显示行,结果将是:

es
es
it
it
fr
fr 

此致

Javi

1 个答案:

答案 0 :(得分:0)

我猜这里你要先在列中找到带有'es'的记录,然后按顺序获得其余的记录(在你的例子中你使用的是后代顺序)。

如果是这种情况,你可以这样做(在Oracle中)

Select *
From
(
  Select T.*, 0 orden
    From Table T
   Where column_name= 'es'
   Union
  Select T.*, 1 orden
    From Table T
   Where column_name <> 'es'
)
Order By orden, column_name

要更改列的顺序方向,只需在order by子句中添加Desc。

编辑:对于MySQL尝试改为

Select *
From
(
  Select T.*, 0 orden
    From Table AS T
   Where column_name= 'es'
   Union
  Select T.*, 1 orden
    From Table AS T
   Where column_name <> 'es'
)
Order By orden, column_name

我现在手头没有MySQL实例,所以我无法测试它。

祝你好运