<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های شل کرده در برف</title><link>https://virgool.ir/feed/@tubiskasaroos</link><description></description><language>fa</language><pubDate>2026-11-12 14:48:07</pubDate><image><url>https://files.virgool.ir/upload/users/255299/avatar/avatar.png</url><title>شل کرده در برف</title><link>https://virgool.ir/@tubiskasaroos</link></image><item><title>معکوس کردن ترتیب انبار ها</title><link>https://virgool.ir/@tubiskasaroos/معکوس-کردن-ترتیب-انبار-ها-wdff8brgf4qx</link><description>چون در sql server 2014 دستور String_Split هنوز معرفی نشده بود، شما نیاز دارید خودتان یک فانکشن بنویسید که این کار را برای شما انجام بدهد.Create FUNCTION dbo.splitstring ( @stringToSplit VARCHAR(MAX), @stringDelima varchar(3) )RETURNS@returnList TABLE ([Name] [nvarchar] (500))ASBEGINDECLARE @name NVARCHAR(255)DECLARE @pos INTWHILE CHARINDEX(@stringDelima, @stringToSplit) &gt; 0BEGINSELECT @pos = CHARINDEX(@stringDelima, @stringToSplit)SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1)INSERT INTO@returnListSELECT @nameSELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)-@pos)ENDINSERT INTO@returnListSELECT @stringToSplitRETURNENDپس از آن میتوانید در کد خود، این فانکشن را صدا بزنید. بعد از تغییر ترتیب الفبای نزولی، باز هم چون نسخه SQL Server پایین است، دستور String_Agg را ندارید و نیاز دارید از ترکیب دستورات XML و Stuff استفاده کنید. کد تکمیل شده به این صورت می باشد:CREATE TABLE #tmp(inventory VARCHAR(200));INSERT INTO #tmp(inventory)VALUES (&#39;A-B-X&#39;);INSERT INTO #tmp(inventory)VALUES (&#39;A-D&#39;);INSERT INTO #tmp(inventory)VALUES (&#39;A-K&#39;);INSERT INTO #tmp(inventory)VALUES (&#39;A-B-X&#39;);WITH cteAS (SELECTSTUFF(((SELECT &#39;-&#39; +b.NameFROM(SELECT *FROM dbo.splitstring(a.inventory, &#39;-&#39;)) bORDER BY 1 DESC FOR XML PATH(&#39;&#39;))), 1, 1, &#39;&#39;) inventoryFROM #tmp a)SELECT DISTINCT*FROM cteUNION SELECT DISTINCT*FROM #tmp t;DROP TABLE #tmp;و در صورتی که با نسخه sql 2019 کار کنید، قسمت cte به صورت زیر خواهد بود:WITH cte&#x9;AS (SELECT &#x9;&#x9;   (SELECT STRING_AGG(b.value,&#39;-&#39;)WITHIN GROUP (ORDER BY b.value desc)&#x9;&#x9;   FROM&#x9;&#x9;   (&#x9;&#x9;&#x9;  SELECT *&#x9;&#x9;&#x9;  FROM   STRING_SPLIT(a.inventory, &#39;-&#39;)&#x9;&#x9;   ) b&#x9;&#x9;     )inventory&#x9;    FROM #tmp a)&#x9;SELECT DISTINCT &#x9;&#x9;  *&#x9;FROM     cte&#x9;UNION &#x9;SELECT DISTINCT &#x9;&#x9;  *&#x9;FROM   #tmp t;</description><category>شل کرده در برف</category><author>شل کرده در برف</author><pubDate>Fri, 28 Aug 2020 16:39:05 +0430</pubDate></item></channel></rss>