>我有一个包含两列 ID 和 ORDER 的表,我想要实现的是将 ORDER 列更新为列表编号(如 1、2 ...
我有以逗号分隔的 ID 列表输入:
21545,13117,21538,940,19658,21547,21532,7404,19663,19666,863,13114,13121,11769,13147,13156,972,13165,13174,13182,853,19671,7429,935,1015,931,986,996,991,953,893,920,899,906,20972,886,873,21574,21548
我需要更新 ORDER,以便 21545 = 1、13117 = 2 等等。
实现这一目标的最简单方法是什么?
也许这对你来说是一件容易的事,但我是一名MSSQL开发人员,所以请不要介意我问这个。谢谢。
如果您从头开始构建查询,则可以使用FIELD
函数返回值在一组值中的位置,例如
SELECT FIELD(13117, 21545,13117,21538,940,19658)
如果你有一个逗号分隔的字符串,你可以使用FIND_IN_SET
:
SELECT FIND_IN_SET(13117, '21545,13117,21538,940,19658')
在这两种情况下,输出都是2
.
您可以在 dbfiddle 上的UPDATE
查询中找到演示,演示如何使用这些函数