一个排序的问题

问题描述

假设在页面中输出一个有两个字段(A和B)的表格,字段A的值是从A表中读取的,字段B的值是从另一个表中(也可能是多个表)通过多个字段值的计算读取的。请问如何实现在页面中能对A字段排序,也能对B字段排序

解决方案

解决方案二:
1.直接在SQL语句中使用orderby排序2.用linq或datatable.sort排序3.如果使用的控件支持排序,可以用控件排序
解决方案三:
如果数据已经存到本地内存,比如List中,你可以继承IComparable实现自己的排序方法参考
解决方案四:
直接用leftjoin,然后orderby
解决方案五:
你要输出表格的数据应该是取两个表的吧既然你能取到数据那么排序应该也只对你取到的数据排序也就是说你只需要对你取数据的方法排序就好了·
解决方案六:
建议直接在数据里面处理,给你举个例子selectA,Bfromtb1leftjointb2ontb1.ID=tb2.IDorderbyAdesc,Basc

解决方案七:
我是楼主,补充说明一下:如果只是对A字段排序很好办,用orderby就行了主要是因为b字段的数据是通过其它表中的数据计算得出的,计算方法可能比较复杂,所以不能将两个表连起来查
解决方案八:
复杂也无所谓啊,做个存储过程,管你是用视图还是临时表,最后对结果排序就好了啊或者做成嵌套查询,对查询结果再查询一次然后排序
解决方案九:
当然如果你计算是在程序里算的,而不是在数据库里算好只能对你的数据集进行排序了或者绑定到控件之后在表格中设置排序
解决方案十:
如果数据库里操作不方便就在后台对datatable进行排序呗
解决方案十一:
引用6楼zhangbiao316的回复:

我是楼主,补充说明一下:如果只是对A字段排序很好办,用orderby就行了主要是因为b字段的数据是通过其它表中的数据计算得出的,计算方法可能比较复杂,所以不能将两个表连起来查

你为什么不把这个计算写到存储过程或者函数中。在sql里面直接调用就行了?

时间: 2025-01-20 23:14:05

一个排序的问题的相关文章

一个排序用的C++函数模板

前段时间编写MFC程序时,需要对一个字符串集合CStringArray进行排序.标准模板库STL提供的函数模板sort虽然功能强大,但有两个不便: 1. sort使用枚举器(iterator)机制处理C++数组(即指针)和诸如vector这样的STL对象,但MFC集合类CArray.CStringArray没有提供枚举器.虽然可以通过集合类的成员函数GetData把集合转换成指针,然后调用sort进行处理,但这样做破坏了对象的封装性. 2.如果使用降序排序,还需要另外编一个比较函数. 为此我自己

c++-这是一个排序算法,但结果总是不争取,求大神指出错在哪?

问题描述 这是一个排序算法,但结果总是不争取,求大神指出错在哪? #include <stdio.h> #include <stdlib.h> #include <windows.h> #define MAX 100 int b; int arr[MAX],tearr[MAX]; void merge(int a[],int t[],int lhead, int rtail) { int lt, k, mid, rt; mid = (lhead+rtail)/2; lt

c++-用C++写一个排序的程序

问题描述 用C++写一个排序的程序 题目的意思是 你从键盘录入一系列数,然后你把他按顺序排好,用数组,但要建立类,C++写 解决方案 #include <iostream> using namespace std; class A { public: void print(int* pData, int count){ for (int i = 0; i< count; i++) { cout << pData[i] << " "; } cou

如注释所写问题。。-不明白为什么设计的一个排序无法将string类数据进行排序

问题描述 不明白为什么设计的一个排序无法将string类数据进行排序 #include #include 题目是输入几个字符串(包含大写字母.数字.-,),按照题目给定的对应规律把字符串中的特定字符变为对应数字,形成号码(转换后的号码长度为7),然后按顺序输出号码以及对应的出现次数... using namespace std; class tel { public: int num; string ori;string *alt; tel(int n); tel sort(); void pr

矩阵 排序-计算矩阵中d(i)的值,d为矩阵中所有点值的一个排序

问题描述 计算矩阵中d(i)的值,d为矩阵中所有点值的一个排序 解决方案 图太小,什么也看不见.无非就是二维数组循环,自己写下不难的.

vb-VB里的TrueDbGrid一个排序的问题

问题描述 VB里的TrueDbGrid一个排序的问题 Visula Basic 6.0里的TrueDbGrid怎么实现点击列,根据列重新对数据排序? 解决方案 http://www.newxing.com/Code/VB/dayin/4844.html

SQL order by ID desc/asc加一个排序的字段解决查询慢问题_MsSql

解决方法就是在order by ID desc再加一个排序的字段,这样子可能会把速度提高很多.再加止排序的字段因查询而异了 如表 复制代码 代码如下: CREATE TABLE [dbo].[CMPP_SendCentre] ( [id] [int] IDENTITY (1, 1) NOT NULL , [SendType] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL , [SendDate] [datetime] NOT NULL , [

用VBS模拟二叉树,可以得到一个排序办法._vbs

数据结构知识: 二叉树中序便历可以用来做排序 而VBS里面恰恰就没有现成的排序方法,因此我写了一个用VBS的二叉树,来解决排序问题,中序便历就是排序.大家可以参考原理,应用到自己的程序中. <SCRIPT LANGUAGE="vbScript">  class node  public data  public Lnode  public Rnode  sub insert(newData)   if newData<data then    if IsEmpty(L

一个排序算法的解析

  int[] source = { 8, 9, 10, 7, 6, 10, 20, 5, 21 };   public static void sort(int[] list) { for (int i = 1; i < list.length; i++) { int baseNumber = list[i]; System.out.print("i="+i+",baseNumber="+baseNumber+".Result:"); i