gpt4 book ai didi

c++ - Qt中使用SQL对表格元素进行非常规排序

转载 作者:行者123 更新时间:2023-11-30 04:05:40 24 4
gpt4 key购买 nike

我正在创建一个工单系统,我想填充一个表格供人们查看所有未结工单。我希望它们按优先级排序,从关键 --> 高 --> 中 --> 低。

我正在重用我之前编写的测试数据库程序中的代码,该程序按“姓氏”对表中的条目进行排序。

while(currentRow < rows){
qry.prepare("SELECT * FROM users ORDER BY lastname LIMIT :f1, :f2");
qry.bindValue(":f1", currentRow);
qry.bindValue(":f2", currentRow+1);
qry.exec();
qry.next();
currentCol = 0;
//this loop will populate all columns in the current row
while(currentCol < ui->table->columnCount()){
QTableWidgetItem *setdes = new QTableWidgetItem;
setdes->setText(qry.value(currentCol).toString());
ui->table->setItem(count, currentCol-1, setdes);
currentCol++;
}
currentRow++;

}

显然我不能只将查询从 lastname 更改为 priority,因为它们将按字母顺序排序,而不是我希望它们排序的顺序。有没有一种方法可以执行 SQL 查询以按照我在上面提供的顺序对它们进行排序,或者我是否必须填充表格然后自己对其进行排序?

最佳答案

您可以使用 CASE WHEN ... THEN 构造将字符串映射到数值以进行排序,例如

... 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

关于c++ - Qt中使用SQL对表格元素进行非常规排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23201452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com