我从一个(旧)表中得到了以下结果集:
我想先获取第一个以下标签
IF ARTCO = '999999' AND LINETYP ='C'
并设置到另一列,如下所示:
我已经尝试过 ROW_NUMBER() OVER (PARTITION BY ...) 但它不起作用。 有什么提示可以做到吗?我没有任何想法去做。谢谢
您可以通过使用带有
CASE
语句的子查询来实现此目的,以获得所需的结果。以下是如何做到这一点的示例:
UPDATE your_table t1
SET t1.NEXT_LABEL = (
SELECT TOP 1 t2.LABEL
FROM your_table t2
WHERE t2.ARTCO = '999999' AND t2.LINETYP = 'C' AND t2.DATE > t1.DATE
ORDER BY t2.DATE ASC
)
WHERE t1.ARTCO = '999999' AND t1.LINETYP = 'C';