2012-06-28 4 views
-1

У меня есть таблица, в которой у меня есть одна строка и три столбца. В столбце C мы имеем несколько линий в ячейке. Как я могу найти «привет» в топ-3 строки столбца C. Я заинтересован искать образец в верхних п линий Колонка C.Как получить верхние n строк из ячейки таблицы в SQL

Пусть ниже таблица:

---- ----- Б ------ С

---- а ----- ----- эф де

----------- -------- jk

------------------- lm

Спасибо заранее.

+0

Какие РСУБД? Некоторые из них поддерживают регулярные выражения, которые могут позволить вам получить то, что вы хотите. –

+1

У вас есть несколько строк в одной строке или вы говорите о нескольких строках в одной таблице? –

+1

линии в ячейке? – Lamak

ответ

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 
Смежные вопросы