I do a lot of database work with C2. I typically use 3 arrays: one to hold the data, a second one to filter the data, and the third to sort the filtered data.
The filter array only needs one column, which is the row number of the main array for any rows matching the filter criteria. The index array has two columns - the first is for the data being sorted, and the second is the line number to the filter array (which is just a link to the main array). basically you copy the column you want to sort from the main data array into column 0 of the index array, (and the row number it came from in column 1). Then use C2's array sort. This works great for databases with up to thousands of records. After that, you would want to send queries to your database, and let its engine do the work...
I made a quick sample, just using a main array and an index array. first it loads some data, then sorts the main array (in descending order). Then it builds the index with a primary and secondary sort field.
You will see that I often use constant variables for the field names - this makes reading the code much easier a few weeks / months later when you are trying to figure out what is going on...
you can get my sample here: http://www.rieperts.com/games/forum/SortArray.capx
for your original question, if you just have columns: score, name, address in your array
and only want to sort by score, then you do not need to make an index, just sort the array. The name and address will stay with the corresponding score.