C++ 在Qt中使用SQL对表元素进行非常规排序
我正在创建一个票务系统,我想填充一个表,供人们查看所有打开的票务。我希望它们按优先级排序,从临界-->高-->中-->低 我正在重用以前编写的测试数据库程序中的代码,该程序按“姓氏”对表中的条目进行排序C++ 在Qt中使用SQL对表元素进行非常规排序,c++,sql,qt,sqlite,C++,Sql,Qt,Sqlite,我正在创建一个票务系统,我想填充一个表,供人们查看所有打开的票务。我希望它们按优先级排序,从临界-->高-->中-->低 我正在重用以前编写的测试数据库程序中的代码,该程序按“姓氏”对表中的条目进行排序 while(当前行columnCount()){ QTableWidgetItem*setdes=新的QTableWidgetItem; setdes->setText(qry.value(currentCol.toString()); 用户界面->表格->设置项(计数,当前列-1,设置项);
while(当前行<行){
qry.prepare(“按姓氏限制从用户订单中选择*:f1,:f2”);
qry.bindValue(“:f1”,当前行);
qry.bindValue(“:f2”,当前行+1);
qry.exec();
qry.next();
currentCol=0;
//此循环将填充当前行中的所有列
而(currentColtable->columnCount()){
QTableWidgetItem*setdes=新的QTableWidgetItem;
setdes->setText(qry.value(currentCol.toString());
用户界面->表格->设置项(计数,当前列-1,设置项);
currentCol++;
}
currentRow++;
}
显然,我不能将查询从
lastname
更改为priority
,因为它们将按字母顺序排序,而不是按我希望的顺序排序。是否有一种方法可以执行SQL查询,以按照我上面提供的顺序对它们进行排序,或者我必须填充表,然后自己对其进行排序?当。。。然后构造将字符串映射到要排序的数值,例如
... ORDER BY CASE
WHEN priority='critical' THEN 1
WHEN priority='high' THEN 2
WHEN priority='medium' THEN 3
WHEN priority='low' THEN 4
ELSE 5
END
因此,
用户
表上存在一个优先级
,它的类型是varchar
(或类似)?好吧,我使用的是一个名为tickets的表,而不是users,我粘贴的代码正是我试图修改的代码。每个条目都有优先级,但其类型为“文本”
... ORDER BY CASE
WHEN priority='critical' THEN 1
WHEN priority='high' THEN 2
WHEN priority='medium' THEN 3
WHEN priority='low' THEN 4
ELSE 5
END