Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използване на колона за сортиране в таблица на база данни

Update product set order = order+1 where order >= @value changed

Въпреки че с течение на времето ще получавате все по-големи "места" в поръчката си, но тя пак ще "сортира"

Това ще добави 1 към стойността, която се променя, и всяка стойност след нея в едно изявление, но горното твърдение все още е вярно. Във вашата поръчка ще се образуват все по-големи и по-големи „интервали“, които вероятно ще стигнат до точката на превишаване на INT стойност.

Алтернативно решение при желание за липса на интервали:

Представете си процедура за:UpdateSortOrder с параметри на @NewOrderVal, @IDToChange,@OriginalOrderVal

Двуетапен процес в зависимост от това дали нова/стара поръчка се движи нагоре или надолу по сортирането.

If @NewOrderVal < @OriginalOrderVal --Moving down chain 

--Create space for the movement; no point in changing the original 
    Update product set order = order+1 
    where order BETWEEN @NewOrderVal and @OriginalOrderVal-1;

end if

If @NewOrderVal > @OriginalOrderVal --Moving up chain

--Create space  for the momvement; no point in changing the original  
  Update product set order = order-1 
  where order between @OriginalOrderVal+1 and @NewOrderVal
end if

--Finally update the one we moved to correct value

    update product set order = @newOrderVal where [email protected];

По отношение на най-добрите практики; повечето среди, в които съм бил, обикновено искат нещо, групирано по категории и сортирано по азбучен ред или въз основа на „популярност при продажба“, като по този начин отрича необходимостта от предоставяне на дефинирано от потребителя сортиране.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL Pivot без агрегатна функция

  2. DATEDIFF() срещу DATEDIFF_BIG() в SQL Server:Каква е разликата?

  3. Как OBJECTPROPERTYEX() работи в SQL Server

  4. кръстосаното прилагане на xml заявката работи експоненциално по-зле с нарастването на xml документа

  5. Как да автоматизирате процеса на синхронизиране на схемата на база данни на SQL Server