webForumDet fria alternativet

Hitta alla poster där resultatenhet slutar på '00'

Databaser & SQL

5 svar · 456 visningar · startad av lantmannen

Medlem sedan mars 20102 inlägg
Frågan#1

Jag har försökt använda LIKE, men det fungerar ju endast om 00% finns i början. NU får jag anatgligen använda substr i kombination med en if-sats. Men hur?

SELECT *
FROM FGLEDG
WHERE EGCONO=001
AND EGDIVI= 'SE'
AND EGACDT>= '20100201'
AND EGACDT<= '20100228'
AND SUBSTR(EGAIT2,2,2) = '00'

Men syntaxen på denna är ju inte rätt. Någon som vet hur man knåpar ihop en sådan sats?

Sample
EGAIT2 = 1001, 4524, 4584, 1200 etc
Det är altså alla fält där EGAIT2 slutar på 00 som jag vil få ut.

Tack på förhand.

Medlem sedan feb. 20034 441 inlägg
#2

lantmannen skrev:

Jag har försökt använda LIKE, men det fungerar ju endast om 00% finns i början.

Nej, du kan även använda dig av

WHERE kolumn LIKE '%00'

.
Eller vad är det som gör att du inte kan använda dig av det?

Medlem sedan mars 20007 896 inlägg
#3

Vilken DBMS? Både MySQL och MS SQL Server har en inbyggd funktion 'right()' som du border kunna använda dig av.

select
    *
from
    table
where
    right(EGAIT2, 2) = '00'
Medlem sedan aug. 20039 340 inlägg
#4

Är EGAIT2 en int av något slag? Du kan ju använda funktionen MOD.

MOD(EGAIT2,100) = 0

(Ska dock påpekas att den även matchar om EGAIT2 = 0)

Medlem sedan mars 20102 inlägg
#5

MickeA.com skrev:

Nej, du kan även använda dig av

WHERE kolumn LIKE '%00'

.
Eller vad är det som gör att du inte kan använda dig av det?

Det fungerar inte att skriva %00. Funktionen klarar inte av det.

Medlem sedan feb. 20034 441 inlägg
#6

lantmannen skrev:

Det fungerar inte att skriva %00. Funktionen klarar inte av det.

OK

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)