Code Category Name Type
1 Beverage Coke Local
1 Beverage Coke Master
2 Beverage Sprite Local
3 Beverage Royal Master
0 Beverage Soda Local
0 Beverage Coke Local
我想根据代码,类别和名称选择唯一值。如果有重复的条目(如表中的元素1和2),我想将第二个元素保持在Type = Master。如何在SQLite中使用SELECT?我当前的SQL看起来像这样:
SELECT * FROM table WHERE Name LIKE ? AND category LIKE ? AND code LIKE ?
但这将包含重复项。使用GROUP BY应该消除副本,但我不知道如何专门选择TYPE = Master。
答案 0 :(得分:1)
As" Master" > " Local",您可以使用MAX函数返回两个值中较大的一个:
SELECT Code, category, Name, MAX(Type)
FROM table
WHERE Name LIKE ? AND category LIKE ? AND code LIKE ?
答案 1 :(得分:0)
在SQLite 3.7.11或更高版本中,您可以use MAX() or MIN() to select rows from a group。 "万事达"来自" Local"在字母表中,所以你可以使用MAX():
SELECT Code,
Category,
Name,
MAX(Type)
FROM MyTable
WHERE ...
GROUP BY Code, Category, Name;