如何对存储在 SQL 变量中的操纵数据进行排序?

How can I order manipulated data that I store in a variable in SQL?

我有一个输出一组小数的变量@columns。例如,[0.00000][1.00000][4.00000][3.00000]。这些后来在我的一个查询中用作列。但是,小数点没有按任何特定顺序排列。我想在 SQL 中按从小到大的顺序排列它们。我没有看到执行此操作的函数。

我如何操作数据来做到这一点?

SELECT
    @COLUMNS += QUOTENAME(ct.rate) + ','
FROM
(
SELECT DISTINCT ct.rate FROM
DB.table ct
WHERE ct.ID = @ID
) ct

SET @COLUMNS = LEFT(@COLUMNS, LEN(@COLUMNS) - 1);

PRINT @COLUMNS```

如果您在数组之前对数据进行排序,您将得到从最小到最大排序的输出。由于不能在子查询中使用 order,因此可以 select 一个 TOP MAX(INT) 对其进行子查询。

SELECT
    @COLUMNS += QUOTENAME(ct1.rate) + ','
FROM
(
SELECT DISTINCT  TOP 2147483647 ct.rate FROM
DB.table ct
WHERE ct.ID = @ID
ORDER BY ct.rate
) ct1