Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Qt中使用SQL对表元素进行非常规排序_C++_Sql_Qt_Sqlite - Fatal编程技术网

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