Мне нужно вставить строковое значение, разделенное запятыми, в таблицу с именем productsort
. Моя структура таблицы выглядит следующим образом
+-------------+-----------+
| fkProductID | SortValue |
+-------------+-----------+
| | |
+-------------+-----------+
У меня есть настраиваемая функция разделения, которую я использовал для разделения значений из строки, разделенной запятыми
DECLARE @Var VARCHAR(4000);
SET @Var = '188,189,190,191,192,193,194'
-- Insert statement
INSERT INTO productsort(fkProductID)
SELECT * FROM dbo.fnSplitStringToIds(@Var,',')
Вышеуказанный запрос работает нормально и после таблицы вставки данные следующим образом:
+-------------+-----------+
| fkProductID | SortValue |
+-------------+-----------+
| 188 | |
| 189 | |
| 190 | |
| 191 | |
| 192 | |
| 193 | |
| 194 | |
+-------------+-----------+
Теперь мне нужно вставить инкрементное значение в SortValue
столбец, мне нужен следующий результат:
+-------------+-----------+
| fkProductID | SortValue |
+-------------+-----------+
| 188 | 1 |
| 189 | 2 |
| 190 | 3 |
| 191 | 4 |
| 192 | 5 |
| 193 | 6 |
| 194 | 7 |
+-------------+-----------+
Как я могу это сделать ?
Обновлено:
Строка, разделенная запятыми, может иметь вид 193,191,190,189,192,188,194
. В таком случае мой ожидаемый результат должен быть
+-------------+-----------+
| fkProductID | SortValue |
+-------------+-----------+
| 193 | 1 |
+-------------+-----------+
| 191 | 2 |
+-------------+-----------+
| 190 | 3 |
+-------------+-----------+
| 189 | 4 |
+-------------+-----------+
| 192 | 5 |
+-------------+-----------+
| 188 | 6 |
+-------------+-----------+
| 194 | 7 |
+-------------+-----------+