一个简单SQL语句,在线等,回答后给分 ( 积分: 50 )

  • 主题发起人 主题发起人 yercomputer
  • 开始时间 开始时间
Y

yercomputer

Unregistered / Unconfirmed
GUEST, unregistred user!
AA&nbsp;&nbsp;&nbsp;&nbsp;BB&nbsp;&nbsp;&nbsp;&nbsp;CC----字段<br>20&nbsp;&nbsp;&nbsp;&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;59<br>55&nbsp;&nbsp;&nbsp;&nbsp;78&nbsp;&nbsp;&nbsp;&nbsp;90<br><br>这样使用什么sql语句&nbsp;可以显示为<br>AA&nbsp;&nbsp;&nbsp;&nbsp;BB&nbsp;&nbsp;&nbsp;&nbsp;CC&nbsp;&nbsp;&nbsp;&nbsp;AA&nbsp;&nbsp;&nbsp;&nbsp;BB&nbsp;&nbsp;&nbsp;&nbsp;CC<br>20&nbsp;&nbsp;&nbsp;&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;59&nbsp;&nbsp;&nbsp;&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;78&nbsp;&nbsp;&nbsp;&nbsp;90<br>谢谢
 
如果记录数固定只有几条还好办,循环拼接SQL,太长了就不行了
 
是的&nbsp;这个是很少的最多不到7-8&nbsp;条,请说一下怎么循环拼接SQL
 
做过很多的类似的东东,&nbsp;但都是用存贮过程,动态构造临时表搞定的.&nbsp;用一条SQL,似乎不太可能.&nbsp;有谁可以用简单SQL搞定的,&nbsp;麻烦说一下.
 
存储过程怎么写呢
 
真的不好写吗?
 
select&nbsp;IDENTITY(int,1,1)&nbsp;as&nbsp;idx,tb.AA,tb.BB,tb.CC<br>into&nbsp;#temp<br>from&nbsp;table_name&nbsp;tb<br><br>declare&nbsp;@sqlselectstr&nbsp;varchar(1000),@sqlfromstr&nbsp;varchar(1000),@max_idx&nbsp;int,@counter&nbsp;int,@pre_alias&nbsp;varchar(10),@new_alias&nbsp;varchar(10)<br>select&nbsp;@sqlselectstr='select&nbsp;t1.AA,t1.BB,t1.CC&nbsp;',@sqlfromstr&nbsp;=&nbsp;'&nbsp;from&nbsp;#temp&nbsp;t1&nbsp;',@counter&nbsp;=&nbsp;1,&nbsp;@max_idx&nbsp;=&nbsp;max(idx),@pre_alias&nbsp;=&nbsp;'t1' <br>from&nbsp;#temp<br><br>if&nbsp;@max_idx&nbsp;is&nbsp;not&nbsp;null<br>while(@counter&lt;&nbsp;@max_idx)<br>begin<br>&nbsp;select&nbsp;@counter&nbsp;=&nbsp;@counter&nbsp;+&nbsp;1<br>&nbsp;select&nbsp;@new_alias&nbsp;=&nbsp;'t'+convert(varchar,@counter)<br>&nbsp;select&nbsp;@sqlselectstr&nbsp;=&nbsp;@sqlselectstr&nbsp;+&nbsp;','&nbsp;+&nbsp;@new_alias&nbsp;+'.AA,'+&nbsp;@new_alias&nbsp;+'.BB,'+&nbsp;@new_alias&nbsp;+'.CC'<br>&nbsp;select&nbsp;@sqlfromstr&nbsp;=&nbsp;@sqlfromstr&nbsp;+&nbsp;'&nbsp;join&nbsp;#temp&nbsp;'+&nbsp;@new_alias&nbsp;+&nbsp;'&nbsp;on&nbsp;'&nbsp;+&nbsp;@pre_alias&nbsp;+'.idx+1&nbsp;=&nbsp;'+&nbsp;@new_alias&nbsp;+&nbsp;'.idx'<br>&nbsp;select&nbsp;@pre_alias&nbsp;=&nbsp;@new_alias<br>end<br>exec&nbsp;(@sqlselectstr&nbsp;+&nbsp;@sqlfromstr)<br><br>-----------<br>This&nbsp;script&nbsp;is&nbsp;not&nbsp;so&nbsp;good&nbsp;when&nbsp;there&nbsp;are&nbsp;many&nbsp;records&nbsp;in&nbsp;the&nbsp;table.
 
UnFireSniper&nbsp;就是厉害,谢谢
 
后退
顶部