快速和肮脏的,我喜欢这样。当然,它可以从Management Studio内部完成,你只需要少许创意。这个想法很简单 - 不能显示整个字符串?将其切换并显示更多行。 这是一个函数,它接收一个varchar输入并输出具有指定大小的块。然后,您可以使用此功能从原始表中选择CROSS APLLY,并获得您所需的信息。
功能:
create function Splitter(@string varchar(max), @pieceSize int)
returns @t table(S varchar(8000))
as
begin
if (@string is null or len(@string) = 0)
return
set @pieceSize = isnull(@pieceSize, 1000)
if (@pieceSize < 0 or @pieceSize > 8000)
set @pieceSize = 8000
declare @i int = 0
declare @len int = len(@string)
while (@i < @len/@pieceSize )
begin
insert into @t(S) values(substring(@string, @i * @pieceSize + 1, @pieceSize))
set @i = @i + 1
end
if (@len % @pieceSize) != 0
begin
if (@len/@pieceSize) = 0
set @i = 1
insert into @t(S) values(substring(@string, (@i - 1) * @pieceSize + 1, @len % @pieceSize))
end
return
end
用例:
select t.ID, t.Col1, t.Col2, t.Col3, pieces.S
from dbo.MyTable as t
cross apply dbo.Splitter(t.MybigStringCol, 1000) as pieces
相关:http://stackoverflow.com/questions/1908271/和http://stackoverflow.com/questions/952247/ – Tomalak 2010-11-27 13:15:08
我看到那些链接,它们不包含任何答案。这个问题没有被回答。 – 2010-11-27 13:32:51
你问这个问题已经差不多一个小时了。您可以编写一个简单的应用程序来查询该值,并在大约5分钟内将其扔到文本框中。寻找解决方法实际上是更有效地利用你的时间? (没有,没有一个) – Donnie 2010-11-27 14:02:55