Here's the clip of the UI. The user selects whatever value the vendor provides for unit thickness. The data entry
people aren't comfortable converting.
At this point the sort_order column managed to do the trick....but going forward on my next
application, I can see a different approach.
Are you suggesting a function like this shellsort used with an array.
https://www.geeksforgeeks.org/shellsort/
// C++ implementation of Shell Sort
#include <iostream>
using namespace std;
/* function to sort arr using shellSort */
int shellSort(int arr[], int n)
{
// Start with a big gap, then reduce the gap
for (int gap = n/2; gap > 0; gap /= 2)
{
// Do a gapped insertion sort for this gap size.
// The first gap elements a[0..gap-1] are already in
gapped order
// keep adding one more element until the entire array is
// gap sorted
for (int i = gap; i < n; i += 1)
{
// add a[i] to the elements that have been gap sorted
// save a[i] in temp and make a hole at position i
int temp = arr[i];
// shift earlier gap-sorted elements up until the
correct
// location for a[i] is found
int j;
for (j = i; j >= gap && arr[j - gap] >
temp; j -= gap)
arr[j] = arr[j - gap];
// put temp (the original a[i]) in its correct
location
arr[j] = temp;
}
}
return 0;
}
void printArray(int arr[], int n)
{
for (int i=0; i<n; i++)
cout << arr[i] << " ";
}
int main()
{
int arr[] = {12, 34, 54, 2, 3}, i;
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Array before sorting: \n";
printArray(arr, n);
shellSort(arr, n);
cout << "\nArray after sorting: \n";
printArray(arr, n);
return 0;
}
Array before sorting: 12 34 54 2 3 Array after sorting: 2 3 12 34 54
I would write a stable function converting everything to metric (or imperial, depends on your preferences) and sort on the return of the function. Since unit conversion functions do not need to modify the database and should always return the same values for the same arguments, the function can be used within a query (that is the meaning of the keyword "STABLE") and you can use it for sorting stuff
Regards
On 8/14/2021 12:14 PM, Bret Stern wrote:
I have a table with metric, imperial, fraction columns.
Is there a way to sort correctly using imperial (eg; .125, .375, .437 -> 1., 1.125)
Couldn't handle it with ORDER BY ASC, DESC args so I added a sort_column and sorted based
on those values eg; 1,2,3,4,5,6 indicating the value I need to show in which sequence.
Just curious what the pro's do
Bret
Attachment:
sort_snap.jpg
Description: JPEG image