我有一个包含Countries列的多字段表。我喜欢查询的结果首先由特定国家/地区排序,其余按字母顺序排序。在MySQL中我会做类似的事情:
Select * from myTable Order By Field(Countries,'Italy'),Countries
在Visual-FoxPro中,我尝试索引此查询创建的Cursor:
Select * from myTable Order By Countries
Index on Countries<>'Italy' TAG test
这将显示&#39;意大利&#39;首先,但其余部分以不可预测的顺序排列。 如何在Visual-FoxPro中实现这一点?
答案 0 :(得分:3)
在VFP中你可以这样做:
SELECT * FROM myTable WHERE Countries='Italy' ;
UNION ALL ;
SELECT * FROM (SELECT * FROM myTable WHERE Countries<>'Italy' ORDER BY Countries) as secsel
答案 1 :(得分:1)
它按照“如果国家不是意大利第一,那么意大利”的顺序排列,国家。正确?
在VFP中,您可以使用IIF()。即:
Select *, iif(Countries == 'Italy', 1, 0) as CItaly ;
from myTable :
Order By CItaly,Countries
注意:如果您想通过索引执行此操作,则可以使用复合索引,如:
index on iif(Countries = 'Italy', '1', '0') + Countries tag myCountry