【发布时间】:2022-01-03 23:08:06
【问题描述】:
我在下面有一个示例表。从那张表#A我需要如下所示。基本上我想从第一行而不是零行获取数据。如果在那之后出现任何零都没有问题。
CREATE TABLE #A
(
[Data] int
)
INSERT INTO #A
VALUES (0), (0), (0), (0), (0),
(23), (524), (723), (0), (89),
(23), (4), (51), (0), (0)
SELECT * FROM #A
需要的输出:
Data
-------
23
524
723
0
89
23
4
51
0
0
我尝试了下面的脚本,但我的数据列本身得到了排序。哪个不能正常工作。
SELECT *
FROM
(SELECT
*,
ROW_NUMBER() OVER (ORDER BY data) Rn
FROM
#A) t
【问题讨论】:
-
您的数据没有表示其顺序的列。如果没有一种方式来订购您的数据,您的要求是不可能的。
-
@Larnu 我将我的专栏作为数据仅用于示例目的。
-
这并没有改变我的观点。用 1 列,你想要什么是不可能的。
-
表中的数据是无序的。您显示 0、0、0、0、0、23、524,但这与 0、0、524、0、0、23、0 或任何其他顺序相同。这就是拉努所说的。您的任务是指一个不存在的订单。
标签: sql sql-server tsql