我想进行一个查询,获取按列值排序的行,同时我希望它首先获取 在该列中具有concret值的行。
例如:
it
es
fr
it
es
fr
如果我想首先用“es”显示行,结果将是:
es
es
it
it
fr
fr
此致
Javi
答案 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实例,所以我无法测试它。
祝你好运