Skip to main content
Version: 8.1


This function is used in Python Scripting.


Takes a dataset and returns a sorted version of the dataset. The sort order is determined by a single column. This works on numeric, as well as alphanumeric columns. When sorting alphanumerically, contiguous numbers are treated as a single number: you may recognize this as a "natural sort".


Datasets are immutable, which means they cannot be directly modified once created. Instead, this scripting function returns a new dataset with some modification applied, which must be assigned to a variable to be used. See Altering a Dataset.

Alphanumeric Sort

The table below represents an example of how alphanumeric values are sorted by the function. Raw Column Values represents the initial set of values in a column. The Sorted columns show how the function sorts in Ascending and Descending order.

Raw Column ValuesSorted - AscendingSorted - Descending

Natural Ordering

The naturalOrdering parameter allows the function to sort using either a natural ordering, or an alphabetical ordering.

Raw Column ValuesNatural Ordering - AscendingAlphabetical Ordering - Ascending

Client Permission Restrictions

This scripting function has no Client Permission restrictions.


system.dataset.sort(dataset, keyColumn [, ascending, naturalOrdering])


DatasetdatasetThe dataset to sort.
Integer / StringkeyColumnThe index of the column to sort on.
BooleanascendingTrue for ascending order, False for descending order. If omitted, ascending order will be used. [optional]
BooleannaturalOrderingTrue for natural ordering, False for alphabetical ordering. Ignored if the sort column is a directly sortable data type. If omitted, defaults to True (natural ordering). [optional]


Dataset - A new sorted dataset.


Gateway, Vision Client, Perspective Session

Code Examples

Code Snippet - Sorting a Dataset in a Vision Table Component
# This code will take the data in a Vision Table component, sort it based on the column with index 1,
# and then reinsert the sorted data into the same Table.

data = event.source.parent.getComponent('Table').data
newData = system.dataset.sort(data, 1)
event.source.parent.getComponent('Table').data = newData
Code Snippet - Initializing and Sorting a Dataset by Column Name
# This code will create a dataset in scripting, and then sort it based on the name of one of the columns.
# It then inserts the sorted dataset into a table component.

# Initialize column headers and empty data list
headers = ["City", "Population", "Timezone", "GMTOffset"]
data = []
# Add rows, one by one, into data list
data.append(["New York", 8363710, "EST", -5])
data.append(["Los Angeles", 3833995, "PST", -8])
data.append(["Chicago", 2853114, "CST", -6])
data.append(["Houston", 2242193, "CST", -6])
data.append(["Phoenix", 1567924, "MST", -7])
# Convert headers and data lists into dataset
cities = system.dataset.toDataSet(headers, data)
# Sort the resulting dataset by city name
newData = system.dataset.sort(cities, "City")
# Write final dataset to a table
event.source.parent.getComponent('Table').data = newData


system dataset sort, dataset.sort