CONSULTA SQL DE ACORDO COM ARRAY

JCM0867 16/09/2017 23:52:31
#476618
Dim MeuArray(3) As String
MeuArray(0) = [Ô]4.3[Ô]
MeuArray(1) = [Ô]4.2.1[Ô]
MeuArray(2) = [Ô]4.1.3.22[Ô]

Gostaria de montar uma Consulta SQLque suprimisse todos os código que começassem com 4.3, 4.2.1 e 4.1.3.22 conforme o array acima

Por exemplo iria suprimir:
[txt-color=#0000f0]4.3[/txt-color]
[txt-color=#0000f0]4.3[/txt-color].1
[txt-color=#0000f0]4.3[/txt-color].2.34

[txt-color=#0000f0]4.2.1[/txt-color]
[txt-color=#0000f0]4.2.1[/txt-color].24

[txt-color=#0000f0]4.1.3.22[/txt-color]
[txt-color=#0000f0]4.1.3.22[/txt-color].001
[txt-color=#0000f0]4.1.3.22[/txt-color].002

Algo do tipo se fosse literal
[Ô]Select....[Ô]
[Ô]Where Not Codigo IN ([ô]4.3[ô], [ô]4.2.1[ô], [ô]4.1.3.22[ô])[Ô]

Como faço o Where da consula?

Grato
JABA 17/09/2017 01:59:54
#476619
Resposta escolhida
A ideia é mais ou menos assim, só não se esqueça de conferir como a string está sendo montada antes de executá-la.

Dim sql = [Ô]Select * from Tabela Where[Ô] 

For i as integer = 0 to MeuArray.Length-1
sql = sql + [Ô] Codigo like [Ô] + MeuArray(i) + [ô]%[ô] + [Ô] or[Ô]
Next


OBS: A string sql ficará com um [Ô]or[Ô] sobrando no final, tem que retira-lo pra funcionar.
JCM0867 17/09/2017 10:18:09
#476620
Citação:

:
A ideia é mais ou menos assim, só não se esqueça de conferir como a string está sendo montada antes de executá-la.

Dim sql = [Ô]Select * from Tabela Where[Ô] 

For i as integer = 0 to MeuArray.Length-1
sql = sql + [Ô] Codigo like [Ô] + MeuArray(i) + [ô]%[ô] + [Ô] or[Ô]
Next


OBS: A string sql ficará com um [Ô]or[Ô] sobrando no final, tem que retira-lo pra funcionar.



O Like não pegaria qualquer parte do código, precisaria ser só o início?

Por exemplo:
Para a pesquisa usando like do 4.3 ele pegaria:
[txt-color=#0000f0]4.3[/txt-color]
3.[txt-color=#0000f0]4.3[/txt-color].1
3.5.[txt-color=#0000f0]4.3[/txt-color].7
[txt-color=#0000f0]4.3[/txt-color].1

ele só poderia pegar o
[txt-color=#0000f0]4.3[/txt-color] e [txt-color=#0000f0]4.3[/txt-color].1

Ou estou enganado
JCM0867 17/09/2017 10:50:41
#476621
Acho que assim dará certo

Dim sql = [Ô]Select * from Tabela Where[Ô]

For i as integer = 0 to MeuArray.Length-1
sql = sql + [Ô] Codigo like [Ô] + MeuArray(i) + [ô][txt-color=#e80000][^][/txt-color]%[ô] + [Ô] or[Ô]
Next
CLEVERTON 17/09/2017 11:57:32
#476622
caso seja SQL Server, já tentou usar a função SUBSTRING(campo, 0, 0) ?
JCM0867 17/09/2017 15:03:39
#476623
Citação:

:
caso seja SQL Server, já tentou usar a função SUBSTRING(campo, 0, 0) ?



A solução do Jaba me fez lembrar [txt-color=#e80000][^]%[/txt-color], deu certo, funcionou 100% como eu queria

valeu
Tópico encerrado , respostas não são mais permitidas