如何对存储在 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
我有一个输出一组小数的变量@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