VFP中是否有MySQL Field()函数的替代方法?

时间:2018-04-06 10:21:02

标签: visual-foxpro

我有一个包含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中实现这一点?

2 个答案:

答案 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