如何从SQL的表格单元格中获取前n行

时间:2012-06-28 17:00:23

标签: mysql sql

我有一张桌子,其中有一行和三列。在C列中,我们在单元格中有多行。如何在C列的前3行中搜索“hi”。我有兴趣在C列的前n行搜索模式。

假设下面是表格:

---- A ----- B ------ C

---- as ----- de ----- ef

------------------- JK

------------------- LM

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果只需要搜索一行,就可以执行以下操作(您需要将文本放入@cellText,并使用行数设置@n,并调整换行符,并重写mySQL):

declare @n int
set @n = 2

declare @cellText varchar(100)
select @cellText = '1xxx
2xxx
3xxx
4xxx'
---------------------------

declare @textToSearch varchar(100)
set @textToSearch = ''

declare @counter int
set @counter = 0
while charindex( CHAR(13)+CHAR(10), @cellText) > 0 
begin
   set @counter = @counter + 1
   set @textToSearch = @textToSearch + LEFT(@cellText, charindex( CHAR(13)+CHAR(10), @cellText)+1)
   set @cellText = SUBSTRING(@cellText, charindex( CHAR(13)+CHAR(10),@cellText)+2, LEN(@cellText))
   if @counter = @n break
end
if @n > @counter and LEN(@cellText) > 0 set @textToSearch = @textToSearch + @cellText

-- search your text here
select @textToSearch