<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: SQL SERVER &#8211; A Puzzle &#8211; Swap Value of Column Without Case Statement</title>
	<atom:link href="http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/</link>
	<description>Personal Notes of Pinal Dave</description>
	<lastBuildDate>Sat, 25 May 2013 01:31:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Arif</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-423286</link>
		<dc:creator><![CDATA[Arif]]></dc:creator>
		<pubDate>Mon, 18 Feb 2013 10:48:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-423286</guid>
		<description><![CDATA[UPDATE SIMPLETABLE A 
        SET GENDER = (SELECT DISTINCT GENDER 
                                          FROM SIMPLETABLE B 
                                       WHERE A.GENDER  B.GENDER)]]></description>
		<content:encoded><![CDATA[<p>UPDATE SIMPLETABLE A<br />
        SET GENDER = (SELECT DISTINCT GENDER<br />
                                          FROM SIMPLETABLE B<br />
                                       WHERE A.GENDER  B.GENDER)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: deepa</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-399776</link>
		<dc:creator><![CDATA[deepa]]></dc:creator>
		<pubDate>Thu, 27 Dec 2012 06:32:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-399776</guid>
		<description><![CDATA[nice article.....:)]]></description>
		<content:encoded><![CDATA[<p>nice article&#8230;..:)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mitesh</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-397170</link>
		<dc:creator><![CDATA[Mitesh]]></dc:creator>
		<pubDate>Fri, 21 Dec 2012 13:56:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-397170</guid>
		<description><![CDATA[USE tempdb
GO
DECLARE   @SimpleTable TABLE (
ID INT, Gender VARCHAR(10)
)
INSERT INTO @SimpleTable (ID, Gender)
SELECT 1, &#039;female&#039;
UNION ALL
SELECT 2, &#039;male&#039;
UNION ALL
SELECT 3, &#039;male&#039;


Update S SET Gender = E.Gender from @SimpleTable  S
CROSS JOIN (SELECT DISTINCT Gender from @SimpleTable)E
WHERE S.Gender  E.Gender

select * from @SimpleTable]]></description>
		<content:encoded><![CDATA[<p>USE tempdb<br />
GO<br />
DECLARE   @SimpleTable TABLE (<br />
ID INT, Gender VARCHAR(10)<br />
)<br />
INSERT INTO @SimpleTable (ID, Gender)<br />
SELECT 1, &#8216;female&#8217;<br />
UNION ALL<br />
SELECT 2, &#8216;male&#8217;<br />
UNION ALL<br />
SELECT 3, &#8216;male&#8217;</p>
<p>Update S SET Gender = E.Gender from @SimpleTable  S<br />
CROSS JOIN (SELECT DISTINCT Gender from @SimpleTable)E<br />
WHERE S.Gender  E.Gender</p>
<p>select * from @SimpleTable</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Girish</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-383352</link>
		<dc:creator><![CDATA[Girish]]></dc:creator>
		<pubDate>Thu, 29 Nov 2012 15:16:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-383352</guid>
		<description><![CDATA[Thanks for the solution Eric,]]></description>
		<content:encoded><![CDATA[<p>Thanks for the solution Eric,</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Girish</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-383351</link>
		<dc:creator><![CDATA[Girish]]></dc:creator>
		<pubDate>Thu, 29 Nov 2012 15:15:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-383351</guid>
		<description><![CDATA[Thanks sandeep, its working. I am looking for this kind of statement.]]></description>
		<content:encoded><![CDATA[<p>Thanks sandeep, its working. I am looking for this kind of statement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sandeepmittal11</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-383041</link>
		<dc:creator><![CDATA[sandeepmittal11]]></dc:creator>
		<pubDate>Thu, 29 Nov 2012 05:07:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-383041</guid>
		<description><![CDATA[DECLARE @tab TABLE( val VARCHAR(MAX))
insert into @tab VALUES
(&#039;AASDFADFAGE,CLODFVER&#039;), (&#039;ISDRFOQUASA,GREG,FIRIEN&#039;),
(&#039;ADADFDS,ZSERCL1VER&#039;), (&#039;DIOFFISFW,AFGREG,GGFRIEN&#039;)

select	REPLICATE(&#039;True,&#039;,LEN(val)-LEN(REPLACE(val,&#039;,&#039;,&#039;&#039;)))+&#039;True&#039;
from	@tab]]></description>
		<content:encoded><![CDATA[<p>DECLARE @tab TABLE( val VARCHAR(MAX))<br />
insert into @tab VALUES<br />
(&#8216;AASDFADFAGE,CLODFVER&#8217;), (&#8216;ISDRFOQUASA,GREG,FIRIEN&#8217;),<br />
(&#8216;ADADFDS,ZSERCL1VER&#8217;), (&#8216;DIOFFISFW,AFGREG,GGFRIEN&#8217;)</p>
<p>select	REPLICATE(&#8216;True,&#8217;,LEN(val)-LEN(REPLACE(val,&#8217;,',&#8221;)))+&#8217;True&#8217;<br />
from	@tab</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Bradford</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-382770</link>
		<dc:creator><![CDATA[Eric Bradford]]></dc:creator>
		<pubDate>Wed, 28 Nov 2012 19:14:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-382770</guid>
		<description><![CDATA[DECLARE @tab TABLE ( val VARCHAR(MAX) )
INSERT  INTO @tab
VALUES  ( &#039;asa&#039; ),
        ( &#039;AASDFADFAGE,CLODFVER&#039; ),
        ( &#039;ISDRFOQUASA,GREG,FIRIEN&#039; ),
        ( &#039;ADADFDS,ZSERCL1VER&#039; ),
        ( &#039;DIOFFISFW,AFGREG,GGFRIEN&#039; );
WITH    Numbers ( X )
          AS ( SELECT   1
               UNION ALL
               SELECT   x + 1
               FROM     Numbers
               WHERE    X &lt; 1000
             )
    SELECT  val ,
            REPLACE(RTRIM(REPLICATE(&#039;True &#039;, SUM(N) + 1)), &#039; &#039;, &#039;,&#039;) AS Result
    FROM    Numbers T1
            CROSS APPLY ( SELECT    val ,
                                    CASE WHEN SUBSTRING(val, x, 1) = &#039;,&#039;
                                         THEN 1
                                         ELSE 0
                                    END AS N
                          FROM      @tab
                          WHERE     x &lt; LEN(val)
                        ) T2
    GROUP BY VAL
OPTION  ( MAXRECURSION 1000 )]]></description>
		<content:encoded><![CDATA[<p>DECLARE @tab TABLE ( val VARCHAR(MAX) )<br />
INSERT  INTO @tab<br />
VALUES  ( &#8216;asa&#8217; ),<br />
        ( &#8216;AASDFADFAGE,CLODFVER&#8217; ),<br />
        ( &#8216;ISDRFOQUASA,GREG,FIRIEN&#8217; ),<br />
        ( &#8216;ADADFDS,ZSERCL1VER&#8217; ),<br />
        ( &#8216;DIOFFISFW,AFGREG,GGFRIEN&#8217; );<br />
WITH    Numbers ( X )<br />
          AS ( SELECT   1<br />
               UNION ALL<br />
               SELECT   x + 1<br />
               FROM     Numbers<br />
               WHERE    X &lt; 1000<br />
             )<br />
    SELECT  val ,<br />
            REPLACE(RTRIM(REPLICATE(&#039;True &#039;, SUM(N) + 1)), &#039; &#039;, &#039;,&#039;) AS Result<br />
    FROM    Numbers T1<br />
            CROSS APPLY ( SELECT    val ,<br />
                                    CASE WHEN SUBSTRING(val, x, 1) = &#039;,&#039;<br />
                                         THEN 1<br />
                                         ELSE 0<br />
                                    END AS N<br />
                          FROM      @tab<br />
                          WHERE     x &lt; LEN(val)<br />
                        ) T2<br />
    GROUP BY VAL<br />
OPTION  ( MAXRECURSION 1000 )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Bradford</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-382745</link>
		<dc:creator><![CDATA[Eric Bradford]]></dc:creator>
		<pubDate>Wed, 28 Nov 2012 18:34:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-382745</guid>
		<description><![CDATA[DECLARE @tab TABLE( val VARCHAR(MAX))
insert into @tab VALUES
(&#039;AASDFADFAGE,CLODFVER&#039;), (&#039;ISDRFOQUASA,GREG,FIRIEN&#039;),
(&#039;ADADFDS,ZSERCL1VER&#039;), (&#039;DIOFFISFW,AFGREG,GGFRIEN&#039;)

;WITH CTE (val, X)
AS
(SELECT val, CHARINDEX( &#039;,&#039;, val, 1)
FROM @tab 
UNION ALL
SELECT  val, CHARINDEX(  &#039;,&#039;, val, X+1)
FROM CTE
WHERE  CHARINDEX(  &#039;,&#039;, val, X+1)  0)
SELECT val, REPLACE(RTRIM(REPLICATE (&#039;True &#039;,COUNT(*) +1)),&#039; &#039;, &#039;,&#039;) FROM CTE
GROUP BY val]]></description>
		<content:encoded><![CDATA[<p>DECLARE @tab TABLE( val VARCHAR(MAX))<br />
insert into @tab VALUES<br />
(&#8216;AASDFADFAGE,CLODFVER&#8217;), (&#8216;ISDRFOQUASA,GREG,FIRIEN&#8217;),<br />
(&#8216;ADADFDS,ZSERCL1VER&#8217;), (&#8216;DIOFFISFW,AFGREG,GGFRIEN&#8217;)</p>
<p>;WITH CTE (val, X)<br />
AS<br />
(SELECT val, CHARINDEX( &#8216;,&#8217;, val, 1)<br />
FROM @tab<br />
UNION ALL<br />
SELECT  val, CHARINDEX(  &#8216;,&#8217;, val, X+1)<br />
FROM CTE<br />
WHERE  CHARINDEX(  &#8216;,&#8217;, val, X+1)  0)<br />
SELECT val, REPLACE(RTRIM(REPLICATE (&#8216;True &#8216;,COUNT(*) +1)),&#8217; &#8216;, &#8216;,&#8217;) FROM CTE<br />
GROUP BY val</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Girish</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-382715</link>
		<dc:creator><![CDATA[Girish]]></dc:creator>
		<pubDate>Wed, 28 Nov 2012 17:17:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-382715</guid>
		<description><![CDATA[Can you please try this string to replace.

I want to replace a Value from a record like as shown below,

    AASDFADFAGE,CLODFVER to True,True
    ISDRFOQUASA,GREG,FIRIEN to True,True,True
    ADADFDS,ZSERCL1VER to True,True
    DIOFFISFW,AFGREG,GGFRIEN to True,True,True

With out using XML. Any suggestions please…]]></description>
		<content:encoded><![CDATA[<p>Can you please try this string to replace.</p>
<p>I want to replace a Value from a record like as shown below,</p>
<p>    AASDFADFAGE,CLODFVER to True,True<br />
    ISDRFOQUASA,GREG,FIRIEN to True,True,True<br />
    ADADFDS,ZSERCL1VER to True,True<br />
    DIOFFISFW,AFGREG,GGFRIEN to True,True,True</p>
<p>With out using XML. Any suggestions please…</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Girish</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-382632</link>
		<dc:creator><![CDATA[Girish]]></dc:creator>
		<pubDate>Wed, 28 Nov 2012 15:05:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-382632</guid>
		<description><![CDATA[Thanks Sandeep. i am using XML, without Function.  There is a performance hit, So any other way.]]></description>
		<content:encoded><![CDATA[<p>Thanks Sandeep. i am using XML, without Function.  There is a performance hit, So any other way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sandeepmittal11</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-382362</link>
		<dc:creator><![CDATA[sandeepmittal11]]></dc:creator>
		<pubDate>Wed, 28 Nov 2012 05:32:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-382362</guid>
		<description><![CDATA[CREATE FUNCTION	fn_replacevalues(
    @delimited NVARCHAR(MAX),
    @delimiter NVARCHAR(100)
) RETURNS VARCHAR(MAX)
AS
BEGIN	
    DECLARE @xml XML
    DECLARE @retval VARCHAR(MAX)
    SET @xml = N&#039;&#039; + REPLACE(@delimited,@delimiter,&#039;&#039;) + &#039;&#039;    
	SELECT @retval = STUFF((SELECT  &#039;,&#039; + &#039;True&#039; FROM	@xml.nodes(&#039;/t&#039;) as records(r) FOR XML PATH(&#039;&#039;)),1,1,&#039;&#039;)			
    RETURN @retval    
END	

DECLARE @tab TABLE( val VARCHAR(MAX))
insert into @tab VALUES
(&#039;AASDFADFAGE,CLODFVER&#039;), (&#039;ISDRFOQUASA,GREG,FIRIEN&#039;),
(&#039;ADADFDS,ZSERCL1VER&#039;), (&#039;DIOFFISFW,AFGREG,GGFRIEN&#039;)

SELECT	dbo.fn_replacevalues(val, &#039;,&#039;)
FROM	@tab]]></description>
		<content:encoded><![CDATA[<p>CREATE FUNCTION	fn_replacevalues(<br />
    @delimited NVARCHAR(MAX),<br />
    @delimiter NVARCHAR(100)<br />
) RETURNS VARCHAR(MAX)<br />
AS<br />
BEGIN<br />
    DECLARE @xml XML<br />
    DECLARE @retval VARCHAR(MAX)<br />
    SET @xml = N&#8221; + REPLACE(@delimited,@delimiter,&#8221;) + &#8221;<br />
	SELECT @retval = STUFF((SELECT  &#8216;,&#8217; + &#8216;True&#8217; FROM	@xml.nodes(&#8216;/t&#8217;) as records(r) FOR XML PATH(&#8221;)),1,1,&#8221;)<br />
    RETURN @retval<br />
END	</p>
<p>DECLARE @tab TABLE( val VARCHAR(MAX))<br />
insert into @tab VALUES<br />
(&#8216;AASDFADFAGE,CLODFVER&#8217;), (&#8216;ISDRFOQUASA,GREG,FIRIEN&#8217;),<br />
(&#8216;ADADFDS,ZSERCL1VER&#8217;), (&#8216;DIOFFISFW,AFGREG,GGFRIEN&#8217;)</p>
<p>SELECT	dbo.fn_replacevalues(val, &#8216;,&#8217;)<br />
FROM	@tab</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Girish</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-382205</link>
		<dc:creator><![CDATA[Girish]]></dc:creator>
		<pubDate>Tue, 27 Nov 2012 21:59:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-382205</guid>
		<description><![CDATA[Sorry for the alignment, 


It should be like 


AASDFADFAGE,CLODFVER	       to 	 True,True
ISDRFOQUASA,GREG,FIRIEN	       to 	 True,True,True
ADADFDS,ZSERCL1VER	       to 	 True,True
DIOFFISFW,AFGREG,GGFRIEN    to 	 True,True,True]]></description>
		<content:encoded><![CDATA[<p>Sorry for the alignment, </p>
<p>It should be like </p>
<p>AASDFADFAGE,CLODFVER	       to 	 True,True<br />
ISDRFOQUASA,GREG,FIRIEN	       to 	 True,True,True<br />
ADADFDS,ZSERCL1VER	       to 	 True,True<br />
DIOFFISFW,AFGREG,GGFRIEN    to 	 True,True,True</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Girish</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-382195</link>
		<dc:creator><![CDATA[Girish]]></dc:creator>
		<pubDate>Tue, 27 Nov 2012 21:36:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-382195</guid>
		<description><![CDATA[I want to replace a Value from a record like as shown below,

AASDFADFAGE,CLOVER			 True,True
ISDRFOQUASA,GREG,FIRIEN		         True,True,True
ADADFDS,ZSERCL1VER			 True,True
DIOFFISFW,AFGREG,GGFRIEN	         True,True,True

Any suggestions please...]]></description>
		<content:encoded><![CDATA[<p>I want to replace a Value from a record like as shown below,</p>
<p>AASDFADFAGE,CLOVER			 True,True<br />
ISDRFOQUASA,GREG,FIRIEN		         True,True,True<br />
ADADFDS,ZSERCL1VER			 True,True<br />
DIOFFISFW,AFGREG,GGFRIEN	         True,True,True</p>
<p>Any suggestions please&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vibin M Lazar</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-366471</link>
		<dc:creator><![CDATA[Vibin M Lazar]]></dc:creator>
		<pubDate>Tue, 30 Oct 2012 11:09:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-366471</guid>
		<description><![CDATA[I think the first answer is simple and more understandable...

Any way thanks for new ideas.. :-)

With regards,

   Vibin M Lazar
   Calicut]]></description>
		<content:encoded><![CDATA[<p>I think the first answer is simple and more understandable&#8230;</p>
<p>Any way thanks for new ideas.. :-)</p>
<p>With regards,</p>
<p>   Vibin M Lazar<br />
   Calicut</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Saurabh Maurya</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-303146</link>
		<dc:creator><![CDATA[Saurabh Maurya]]></dc:creator>
		<pubDate>Tue, 19 Jun 2012 11:07:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-303146</guid>
		<description><![CDATA[Below also works well and can be implemented for more than one columns if to be swapped-
UPDATE GENDERS set gender=G2.SwappedGender 
FROM GENDERS G1, (select GENDER, (CASE WHEN GENDER=&#039;male&#039; THEN &#039;FEMALE&#039;  ELSE &#039;MALE&#039; END) as SwappedGender  from genders) as G2 
WHERE G1.GENDER=G2.GENDER]]></description>
		<content:encoded><![CDATA[<p>Below also works well and can be implemented for more than one columns if to be swapped-<br />
UPDATE GENDERS set gender=G2.SwappedGender<br />
FROM GENDERS G1, (select GENDER, (CASE WHEN GENDER=&#8217;male&#8217; THEN &#8216;FEMALE&#8217;  ELSE &#8216;MALE&#8217; END) as SwappedGender  from genders) as G2<br />
WHERE G1.GENDER=G2.GENDER</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SQL SERVER &#8211; Simple Explanation and Puzzle with SOUNDEX Function and DIFFERENCE Function &#171; SQL Server Journey with SQL Authority</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-301861</link>
		<dc:creator><![CDATA[SQL SERVER &#8211; Simple Explanation and Puzzle with SOUNDEX Function and DIFFERENCE Function &#171; SQL Server Journey with SQL Authority]]></dc:creator>
		<pubDate>Sat, 16 Jun 2012 01:31:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-301861</guid>
		<description><![CDATA[[...] a question where I asked how to Swap Values of the column without using CASE Statement. Read here: A Puzzle – Swap Value of Column Without Case Statement,there were more than 50 solutions proposed in the comment. There were many creative solutions. I [...]]]></description>
		<content:encoded><![CDATA[<p>[...] a question where I asked how to Swap Values of the column without using CASE Statement. Read here: A Puzzle – Swap Value of Column Without Case Statement,there were more than 50 solutions proposed in the comment. There were many creative solutions. I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SQL SERVER &#8211; Solution of Puzzle &#8211; Swap Value of Column Without Case Statement &#171; SQL Server Journey with SQL Authority</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-300971</link>
		<dc:creator><![CDATA[SQL SERVER &#8211; Solution of Puzzle &#8211; Swap Value of Column Without Case Statement &#171; SQL Server Journey with SQL Authority]]></dc:creator>
		<pubDate>Thu, 14 Jun 2012 01:31:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-300971</guid>
		<description><![CDATA[[...] a question where I asked how to Swap Values of the column without using CASE Statement. Read here: SQL SERVER – A Puzzle – Swap Value of Column Without Case Statement. I have proposed 3 different solutions in the blog posts itself. I had requested the help of the [...]]]></description>
		<content:encoded><![CDATA[<p>[...] a question where I asked how to Swap Values of the column without using CASE Statement. Read here: SQL SERVER – A Puzzle – Swap Value of Column Without Case Statement. I have proposed 3 different solutions in the blog posts itself. I had requested the help of the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Tkatch</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-299867</link>
		<dc:creator><![CDATA[Brian Tkatch]]></dc:creator>
		<pubDate>Mon, 11 Jun 2012 15:55:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-299867</guid>
		<description><![CDATA[UPDATE
	SimpleTable
SET
	Gender = SUBSTRING(&#039;fe&#039;+ Gender, POWER(LEN(Gender) % 4, 2) + 1, 6)]]></description>
		<content:encoded><![CDATA[<p>UPDATE<br />
	SimpleTable<br />
SET<br />
	Gender = SUBSTRING(&#8216;fe&#8217;+ Gender, POWER(LEN(Gender) % 4, 2) + 1, 6)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Bradford</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-299746</link>
		<dc:creator><![CDATA[Eric Bradford]]></dc:creator>
		<pubDate>Mon, 11 Jun 2012 12:17:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-299746</guid>
		<description><![CDATA[WHERE    Swap.Gender  T1.Gender

Problem submitting code. The different then symbol is interpreted as empty HTML tag]]></description>
		<content:encoded><![CDATA[<p>WHERE    Swap.Gender  T1.Gender</p>
<p>Problem submitting code. The different then symbol is interpreted as empty HTML tag</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Bradford</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-299742</link>
		<dc:creator><![CDATA[Eric Bradford]]></dc:creator>
		<pubDate>Mon, 11 Jun 2012 12:11:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-299742</guid>
		<description><![CDATA[WITH  Swap
        AS (SELECT   &#039;male&#039; AS Gender
            UNION ALL
            SELECT   &#039;female&#039;)
  UPDATE T1
  SET gender = Swap.Gender
   FROM     SimpleTable T1
   CROSS JOIN Swap
   WHERE    Swap.Gender  T1.Gender]]></description>
		<content:encoded><![CDATA[<p>WITH  Swap<br />
        AS (SELECT   &#8216;male&#8217; AS Gender<br />
            UNION ALL<br />
            SELECT   &#8216;female&#8217;)<br />
  UPDATE T1<br />
  SET gender = Swap.Gender<br />
   FROM     SimpleTable T1<br />
   CROSS JOIN Swap<br />
   WHERE    Swap.Gender  T1.Gender</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sandeepmittal11</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-297970</link>
		<dc:creator><![CDATA[sandeepmittal11]]></dc:creator>
		<pubDate>Sat, 09 Jun 2012 09:54:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-297970</guid>
		<description><![CDATA[DECLARE @TAB TABLE (ID INT, Gender VARCHAR(10))
INSERT INTO @TAB
SELECT 1, &#039;female&#039; 
UNION ALL SELECT 2, &#039;male&#039; 
UNION ALL SELECT 3, &#039;male&#039;

UPDATE	T1	
SET		T1.Gender = T2.Gender
FROM (
	SELECT	DENSE_RANK() OVER (ORDER BY Gender) AS ROWID , ID, Gender
	FROM	@TAB
) T1 INNER JOIN (
	SELECT Gender, ROW_NUMBER() OVER (ORDER BY Gender DESC) AS ROWID
	FROM ( SELECT DISTINCT Gender FROM @TAB) T
) T2 ON T1.ROWID = T2.ROWID

SELECT * FROM @TAB]]></description>
		<content:encoded><![CDATA[<p>DECLARE @TAB TABLE (ID INT, Gender VARCHAR(10))<br />
INSERT INTO @TAB<br />
SELECT 1, &#8216;female&#8217;<br />
UNION ALL SELECT 2, &#8216;male&#8217;<br />
UNION ALL SELECT 3, &#8216;male&#8217;</p>
<p>UPDATE	T1<br />
SET		T1.Gender = T2.Gender<br />
FROM (<br />
	SELECT	DENSE_RANK() OVER (ORDER BY Gender) AS ROWID , ID, Gender<br />
	FROM	@TAB<br />
) T1 INNER JOIN (<br />
	SELECT Gender, ROW_NUMBER() OVER (ORDER BY Gender DESC) AS ROWID<br />
	FROM ( SELECT DISTINCT Gender FROM @TAB) T<br />
) T2 ON T1.ROWID = T2.ROWID</p>
<p>SELECT * FROM @TAB</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sandeepmittal11</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-297968</link>
		<dc:creator><![CDATA[sandeepmittal11]]></dc:creator>
		<pubDate>Sat, 09 Jun 2012 09:37:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-297968</guid>
		<description><![CDATA[--Solution : 1
DECLARE @TAB TABLE (ID INT, Gender VARCHAR(10))
INSERT INTO @TAB
SELECT 1, &#039;female&#039; 
UNION ALL SELECT 2, &#039;male&#039; 
UNION ALL SELECT 3, &#039;male&#039;

DECLARE @list VARCHAR(100)
SET @list = (SELECT DISTINCT &#039;,&#039; + Gender FROM @TAB FOR XML PATH(&#039;&#039;))
SELECT	ID, REPLACE(REPLACE(@list, &#039;,&#039; + Gender, &#039;&#039;),&#039;,&#039;,&#039;&#039;) AS Gender
FROM	@TAB


-- Solution : 2 (if having even more than 2 distinct values)
--This will replace 1 value with 2, 2 with 3, 3 with n, n with 1
DECLARE @TAB TABLE (ID INT, Val VARCHAR(10))
INSERT INTO @TAB
SELECT 1, &#039;AAA&#039; 
UNION ALL SELECT 2, &#039;BBB&#039; 
UNION ALL SELECT 3, &#039;BBB&#039;
UNION ALL SELECT 4, &#039;CCC&#039;
UNION ALL SELECT 5, &#039;CCC&#039;

;WITH CTE AS(
	SELECT ROW_NUMBER() OVER (ORDER BY Val) AS ROWID , Val
	FROM ( SELECT DISTINCT Val FROM @TAB ) TAB	
), CTEMIN AS (SELECT TOP 1 Val FROM CTE ORDER BY ROWID)

SELECT T1.ID, COALESCE(T2.Val, CTEMIN.Val) as Val
FROM (
	SELECT	ID, DENSE_RANK() OVER (ORDER BY Val) AS ROWID, Val FROM @TAB 
) T1 LEFT JOIN CTE T2 ON T1.ROWID = T2.ROWID -1
CROSS APPLY CTEMIN 
ORDER BY T1.ID]]></description>
		<content:encoded><![CDATA[<p>&#8211;Solution : 1<br />
DECLARE @TAB TABLE (ID INT, Gender VARCHAR(10))<br />
INSERT INTO @TAB<br />
SELECT 1, &#8216;female&#8217;<br />
UNION ALL SELECT 2, &#8216;male&#8217;<br />
UNION ALL SELECT 3, &#8216;male&#8217;</p>
<p>DECLARE @list VARCHAR(100)<br />
SET @list = (SELECT DISTINCT &#8216;,&#8217; + Gender FROM @TAB FOR XML PATH(&#8221;))<br />
SELECT	ID, REPLACE(REPLACE(@list, &#8216;,&#8217; + Gender, &#8221;),&#8217;,',&#8221;) AS Gender<br />
FROM	@TAB</p>
<p>&#8211; Solution : 2 (if having even more than 2 distinct values)<br />
&#8211;This will replace 1 value with 2, 2 with 3, 3 with n, n with 1<br />
DECLARE @TAB TABLE (ID INT, Val VARCHAR(10))<br />
INSERT INTO @TAB<br />
SELECT 1, &#8216;AAA&#8217;<br />
UNION ALL SELECT 2, &#8216;BBB&#8217;<br />
UNION ALL SELECT 3, &#8216;BBB&#8217;<br />
UNION ALL SELECT 4, &#8216;CCC&#8217;<br />
UNION ALL SELECT 5, &#8216;CCC&#8217;</p>
<p>;WITH CTE AS(<br />
	SELECT ROW_NUMBER() OVER (ORDER BY Val) AS ROWID , Val<br />
	FROM ( SELECT DISTINCT Val FROM @TAB ) TAB<br />
), CTEMIN AS (SELECT TOP 1 Val FROM CTE ORDER BY ROWID)</p>
<p>SELECT T1.ID, COALESCE(T2.Val, CTEMIN.Val) as Val<br />
FROM (<br />
	SELECT	ID, DENSE_RANK() OVER (ORDER BY Val) AS ROWID, Val FROM @TAB<br />
) T1 LEFT JOIN CTE T2 ON T1.ROWID = T2.ROWID -1<br />
CROSS APPLY CTEMIN<br />
ORDER BY T1.ID</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sandeep Mittal</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-297967</link>
		<dc:creator><![CDATA[Sandeep Mittal]]></dc:creator>
		<pubDate>Sat, 09 Jun 2012 09:35:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-297967</guid>
		<description><![CDATA[--Solution : 1
DECLARE @TAB TABLE (ID INT, Gender VARCHAR(10))
INSERT INTO @TAB
SELECT 1, &#039;female&#039; 
UNION ALL SELECT 2, &#039;male&#039; 
UNION ALL SELECT 3, &#039;male&#039;

DECLARE @list VARCHAR(100)
SET @list = (SELECT DISTINCT &#039;,&#039; + Gender FROM @TAB FOR XML PATH(&#039;&#039;))
SELECT	ID, REPLACE(REPLACE(@list, &#039;,&#039; + Gender, &#039;&#039;),&#039;,&#039;,&#039;&#039;) AS Gender
FROM	@TAB

-- Solution : 2 (if having even more than 2 distinct values)
--This will replace 1 value with 2, 2 with 3, 3 with n, n with 1
DECLARE @TAB TABLE (ID INT, Val VARCHAR(10))
INSERT INTO @TAB
SELECT 1, &#039;AAA&#039; 
UNION ALL SELECT 2, &#039;BBB&#039; 
UNION ALL SELECT 3, &#039;BBB&#039;
UNION ALL SELECT 4, &#039;CCC&#039;
UNION ALL SELECT 5, &#039;CCC&#039;

;WITH CTE AS(
	SELECT ROW_NUMBER() OVER (ORDER BY Val) AS ROWID , Val
	FROM ( SELECT DISTINCT Val FROM @TAB ) TAB	
), CTEMIN AS (SELECT TOP 1 Val FROM CTE ORDER BY ROWID)

SELECT T1.ID, COALESCE(T2.Val, CTEMIN.Val) as Val
FROM (
	SELECT	ID, DENSE_RANK() OVER (ORDER BY Val) AS ROWID, Val FROM @TAB 
) T1 LEFT JOIN CTE T2 ON T1.ROWID = T2.ROWID -1
CROSS APPLY CTEMIN 
ORDER BY T1.ID]]></description>
		<content:encoded><![CDATA[<p>&#8211;Solution : 1<br />
DECLARE @TAB TABLE (ID INT, Gender VARCHAR(10))<br />
INSERT INTO @TAB<br />
SELECT 1, &#8216;female&#8217;<br />
UNION ALL SELECT 2, &#8216;male&#8217;<br />
UNION ALL SELECT 3, &#8216;male&#8217;</p>
<p>DECLARE @list VARCHAR(100)<br />
SET @list = (SELECT DISTINCT &#8216;,&#8217; + Gender FROM @TAB FOR XML PATH(&#8221;))<br />
SELECT	ID, REPLACE(REPLACE(@list, &#8216;,&#8217; + Gender, &#8221;),&#8217;,',&#8221;) AS Gender<br />
FROM	@TAB</p>
<p>&#8211; Solution : 2 (if having even more than 2 distinct values)<br />
&#8211;This will replace 1 value with 2, 2 with 3, 3 with n, n with 1<br />
DECLARE @TAB TABLE (ID INT, Val VARCHAR(10))<br />
INSERT INTO @TAB<br />
SELECT 1, &#8216;AAA&#8217;<br />
UNION ALL SELECT 2, &#8216;BBB&#8217;<br />
UNION ALL SELECT 3, &#8216;BBB&#8217;<br />
UNION ALL SELECT 4, &#8216;CCC&#8217;<br />
UNION ALL SELECT 5, &#8216;CCC&#8217;</p>
<p>;WITH CTE AS(<br />
	SELECT ROW_NUMBER() OVER (ORDER BY Val) AS ROWID , Val<br />
	FROM ( SELECT DISTINCT Val FROM @TAB ) TAB<br />
), CTEMIN AS (SELECT TOP 1 Val FROM CTE ORDER BY ROWID)</p>
<p>SELECT T1.ID, COALESCE(T2.Val, CTEMIN.Val) as Val<br />
FROM (<br />
	SELECT	ID, DENSE_RANK() OVER (ORDER BY Val) AS ROWID, Val FROM @TAB<br />
) T1 LEFT JOIN CTE T2 ON T1.ROWID = T2.ROWID -1<br />
CROSS APPLY CTEMIN<br />
ORDER BY T1.ID</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aneel</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-297869</link>
		<dc:creator><![CDATA[Aneel]]></dc:creator>
		<pubDate>Sat, 09 Jun 2012 06:27:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-297869</guid>
		<description><![CDATA[The second version looks cooler :-)]]></description>
		<content:encoded><![CDATA[<p>The second version looks cooler :-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aneel</title>
		<link>http://blog.sqlauthority.com/2012/06/08/sql-server-a-puzzle-swap-value-of-column-without-case-statement/#comment-297868</link>
		<dc:creator><![CDATA[Aneel]]></dc:creator>
		<pubDate>Sat, 09 Jun 2012 06:25:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.sqlauthority.com/?p=19204#comment-297868</guid>
		<description><![CDATA[This is cool. Similar to my approach proposed above except that you are not using colaesce and also you are not using a from clause (which I forgot is possible in SQL Server thanks to my experience in Oracle :-))...]]></description>
		<content:encoded><![CDATA[<p>This is cool. Similar to my approach proposed above except that you are not using colaesce and also you are not using a from clause (which I forgot is possible in SQL Server thanks to my experience in Oracle :-))&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
