SELECT AssetValue
FROM Assets
WHERE (AssetType = 'Country')
非常简单的Select Statement,但输出
Afghanistan
Albania
Algeria
....
如何让美国和加拿大成为最重要的?这可能是SQL还是我需要在我的ASP代码中做一些事情?我的PK是INT身份。
答案 0 :(得分:21)
SELECT AssetValue
FROM Assets
WHERE (AssetType = 'Country')
ORDER BY CASE AssetValue
WHEN 'US' THEN 1
WHEN 'Canada' THEN 2 ELSE 3 END, AssetValue
答案 1 :(得分:4)
如果您不希望硬编码,最通用的解决方案是使用额外的字段来指示优惠项目。你可以称之为OrderPreference
。 OrderPreference越高,该项目首先出现。其他每个项目的OrderPreference都等于ZERO。查询:
SELECT AssetValue
FROM Assets
WHERE (AssetType = 'Country')
ORDER BY OrderPreference desc, AssetValue
从外观上看,资产是您用于其他事物(不仅是国家/地区)的表格,因此您可以使用此方法为其他资产类型解决相同的问题(如果它们出现)。
答案 2 :(得分:1)
给他们一个群组ID,因此群组1是美国,英国等,群组2是世界其他地方,那么你可以做“优先”国家。