SQL 語句取‘,’換行
--ms sql05
declare @str varchar(max)
set @str='12,21,32,23,13,31,34,43,54,54'
;with cte as(
select col from
(select xmlns=cast('
'+replace(@str,',','
')+'
' as xml))
a
cross apply
(
select col=*('.','nvarchar(100)')
from *('/root/p')as c(v)
)b
)
select * from cte
sql語句列轉行
--方法對了,其實超級容易,下面給你一個例子,實際的請自己改寫一下,以下代碼可以在sql server中執行,返回的就是你要的結果
--將你的數據存入表
declare @a table(ii varchar(10),jj varchar(10))
insert into @a values('c_003','套餐A')
insert into @a values('c_004','49')
insert into @a values('c_005','300')
insert into @a values('c_003','套餐B')
insert into @a values('c_004','59')
insert into @a values('c_005','700')
--檢索一下,看是否是正確的
select * from @a
--將數據行做成列表
declare @b table(c_003 varchar(10),c_004 varchar(10),c_005 varchar(10))
--定義游標完成數據轉換
declare cur_a_b cursor for select ii,jj from @a
declare @i int --定義步長,方便以3為不同的步長
set @i=0
declare @ii varchar(10)
declare @jj varchar(10)
--臨時的c_003變量
declare @fn varchar(20)
--打開游標
open cur_a_b
fetch next from cur_a_b into @ii,@jj
while @@fetch_status = 0
begin
if @i % 3 = 0
begin
set @fn = @jj
insert into @b(c_003) values(@fn)
end
if @i % 3 = 1 update @b set c_004=@jj where c_003=@fn
if @i % 3 = 2 update @b set c_005=@jj where c_003=@fn
set @i = @i + 1
fetch next from cur_a_b into @ii,@jj
end
close cur_a_b
deallocate cur_a_b
--最終結果
select * from @b
--呵呵,寫了這么多也不容易,加點分吧
請問在sql中字符串中換行怎么表示
1. SQL 關鍵字 換行char(10)
2. SQL 代碼如下:
declare @SQL nvarchar(max)
set @SQL='select * from Table ' +Char(10)
set @SQL=@SQL+' where a=10'
print @SQL
3. --print 拼接輸出SQL如下:
select * from Table
where a=10
4. --執行SQL
5. exec(@SQL)
sql server 數據庫換行符怎么使用
SQL 關鍵字 換行符號:char(10) ,回車:char(13)
假如需要拼接一段SQL 語句,并且需要于換行的模式顯示
declare @SQL nvarchar(max)
set @SQL=' select * from Table '+char(10)
set @SQL=@SQL+' where a=10' +char(10)
print @SQL:
結果如下:
select * from Table
where a=10
SQL 語句取‘,’換行
--ms sql05declare @str varchar(max)set @str='12,21,32,23,13,31,34,43,54,54';with cte as(select col from(select xmlns=cast('