| 
	
 | 
 Posted by Plamen Ratchev on 01/09/07 03:24 
Erland, 
 
I believe you are referring to the behavior explained in this KB article: 
http://support.microsoft.com/default.aspx/kb/287515 
 
The way this query is written it follows exactly the workaround solution  
explained in the article (to apply any function or expression to the SELECT  
list columns rather than in the ORDER BY clause). According to the article  
then the query will achieve the expected results. 
 
This query was tested with both SQL Server 2000 and SQL Server 2005. I agree  
it does not exactly comply with the ANSI specifications but seems SQL Server  
handles that well. 
 
Please correct me if I am missing the point. 
 
I did look at the recent thread after you pointed out and the solution you  
provided is in fact more standard and avoids any speculation about  
unexpected behavior. 
 
Regards, 
 
Plamen Ratchev 
http://www.SQLStudio.com 
 
 
"Erland Sommarskog" <esquel@sommarskog.se> wrote in message  
news:Xns98B25FC487BAYazorman@127.0.0.1... 
> Plamen Ratchev (Plamen@SQLStudio.com) writes: 
>> Here is one way to accomplish what you need using a function. Be aware of 
>> the limitation of 8000 characters for varchar. If you are using SQL  
>> Server 
>> 2005 you can use varchar(max) to expand beyond the 8000 character limit. 
>>... 
>>  SELECT @sReturn = COALESCE(@sReturn + @sDelimiter, '') + col2 FROM Test 
>> WHERE col1 = @col1 ORDER BY col2 
> 
> 
> Also beware that this solution relies on undefined behaviour. This may 
> work - or it may not. 
> 
> 
> --  
> Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se 
> 
> Books Online for SQL Server 2005 at 
> http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx 
> Books Online for SQL Server 2000 at 
> http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
 
  
Navigation:
[Reply to this message] 
 |