No SQL Server (2008), tenho uma coluna que é varchar(max).
Desejo consultar todas as linhas em que a sinopse contém uma lista com letras:
Some sentence is here
a. foo
b. bar
c. baz
Some more text later
Posso fazer isso facilmente em expressões regulares, mas não tenho acesso para adicionar recursos de regex à minha instância.
Então, como posso pesquisar usando LIKE para encontrar algo assim? Presumivelmente, eu precisaria descobrir onde o primeiro caractere da linha (em uma sinopse de várias linhas) é um caractere e o segundo é um ponto.
Você pode ter que brincar
CHAR(13)
eCHAR(10)
dependendo da fonte do texto, mas isso pode ser simplesmente:Observe que isso também encontrará:
Se você precisar retornar apenas linhas onde há uma lista com duas ou mais linhas, talvez não queira fazer isso no banco de dados, porque exigiria uma análise muito mais complicada. De fato, nesse caso - e se eu não pudesse realizar a análise fora do banco de dados (ou no banco de dados com CLR RegEx), provavelmente usaria uma função de divisão ordenada.