我坚信这会在我看到答案时让我一巴掌,但是这里...
假设我需要某个供应商提供的所有产品的列表,但是它们需要按顶部和下方的特定变量productType进行订购,这并不重要,但是所有产品都必须在列表中。
所以基本上
SELECT * FROM Products p WHERE p.VendorID = 1 AND p.ProductType = 'widget'
作为要显示的第一行。然后,
SELECT * FROM Products p WHERE p.VendorID = 1 AND p.ProductType <> 'widget'
在那下面。
我正在使用LINQ,如果有帮助,但我什至无法在常规SQL查询中获得它
最佳答案
在Sql中:
SELECT *
FROM Products p
WHERE p.VendorID = 1
ORDER BY CASE WHEN p.ProductType = 'widget' THEN 1 ElSE 2 END
在Linq中:
IQueryable<Product> query =
from p in dc.Products
where p.VendorID == 1
orderby p.ProductType == "widget" ? 1 : 2
select p;