sql按某个字段值顺序排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql按某个字段值顺序排序相关的知识,希望对你有一定的参考价值。

参考技术A 升序:select * from 表名 order by 表中的字段 asc(mysql中默认是升序排列,可不写) ;
降序:select * from 表名 order by 表中的字段 desc ;

C++ std::map sort 如何按值排序 自定义比较函数 比较对象某个字段

map的两个值分别为key值和value值,map是按照key值进行排序的,无法直接对value排序。

可以将map的key和value组成一个新的结构PAIR,用一个PAIR型的vector存储map中的所有内容,对vecor按照value值进行排序。按顺序输出key。

//map按值排序
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
 
typedef pair<string, int> PAIR;  
 
int cmp(const PAIR& x, const PAIR& y)//针对PAIR的比较函数
{  
    return x.second > y.second;  //从大到小
}  
 
int main() {  
  map<string,int> nmap; 
 
  nmap["LiMin"] = 90;  
  nmap["ZiLinMi"] = 79;  
  nmap["BoB"] = 92;  
  nmap.insert(make_pair("Bing",99));  
  nmap.insert(make_pair("Albert",86));  
  //把map中元素转存到vector中   
  vector<PAIR> vec(nmap.begin(),nmap.end());
  sort(vec.begin(), vec.end(), cmp); //排序
  
  for (size_t i = 0; i != vec.size(); ++i) {  //输出
       cout << vec[i].first <<" "<<vec[i].second<<endl;  
  }  
 
  return 0;  
}

 C++中如何给map按值排序_百度知道

//map按值排序
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
 
struct student{
    string name;
    int score;
};

typedef pair<string, student> PAIR;  

 
int cmp(const PAIR& x, const PAIR& y)//针对PAIR的比较函数
{  
    return x.second.score > y.second.score;  //从大到小
}  
 
int main() {  
  map<string,student> nmap; 
  
  student stu;
    
  stu.name = "LiMin";
  stu.score = 90;
  nmap.insert(make_pair(stu.name, stu));
    
  stu.name = "ZiLinMi";
  stu.score = 79;
  nmap.insert(make_pair(stu.name, stu));
    
  stu.name = "BoB";
  stu.score = 92;
  nmap.insert(make_pair(stu.name, stu));
    
  stu.name = "Bing";
  stu.score = 99;
  nmap.insert(make_pair(stu.name, stu));
    
  stu.name = "Albert";
  stu.score = 86;
  nmap[stu.name] = stu;  
    
  cout <<endl<< "map:"<<endl;    
  for(auto it = nmap.begin(); it != nmap.end(); it++){
       cout<<it->first<<' '<<(it->second).score<<endl;    
  }
    
  // 把map中元素转存到vector中   
  vector<PAIR> vec(nmap.begin(),nmap.end());
    
  cout <<endl<< "排序前:"<<endl;  
  for (size_t i = 0; i != vec.size(); ++i) {  //输出
       cout << vec[i].first <<" "<<vec[i].second.score<<endl;  
  }    
  
  // 排序
  sort(vec.begin(), vec.end(), cmp); 
  
  cout <<endl<< "排序后vec1:"<<endl;  
  for (size_t i = 0; i != vec.size(); ++i) {  //输出
       cout << vec[i].first <<" "<<vec[i].second.score<<endl;  
  }  
  
  cout <<endl<< "排序后vec2:"<<endl;  
  // 迭代器
  for (auto it = vec.begin(); it != vec.end(); it++) {  //输出
       cout << (*it).first <<" "<<(*it).second.score<<endl;  
  }  
 
  return 0;  
}

以上是关于sql按某个字段值顺序排序的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp中如何按某个字段的值排序然后按顺序在模板中显示?

MySQL 将某个字段值排在最后,其余记录单独排序

Java查询出来的数据按照某个字段排序

SQL中升序排序字段为空值影响排序结果解决方法

C++ std::map sort 如何按值排序 自定义比较函数 比较对象某个字段

sql 语句按字段指定值排序及分页