Avatar billede dm013 Nybegynder
05. august 2003 - 19:09 Der er 12 kommentarer og
1 løsning

vis kun poster hvor de 7 første tegn er tal

jeg skal løbende hente noge data i en accessdatabase hvor der er et felt som udfyldes af brugerne(max 14 tegn, type char) men jeg vil/skal kun hente de poster hvor de første 7 tegn er tal, hvordan kan jeg gøre dette?

Jeg har som det første skridt lave en left(feltnavn,7) men er efterhånden løbet tør for ideer!
Help

/dm013
Avatar billede arne_v Ekspert
05. august 2003 - 19:12 #1
Access eller MS SQL ?

(du har spurgt i MS SQLServer kategorien)
Avatar billede dm013 Nybegynder
05. august 2003 - 19:14 #2
Det er på MS SQL serveren jeg skal bruge funktionen
Avatar billede arne_v Ekspert
05. august 2003 - 19:17 #3
Du skal lave en SELECT på SQLServer hvor du skal teste for om
et felts værdi starter med 7 tal ?
Avatar billede arne_v Ekspert
05. august 2003 - 19:21 #4
WHERE ISNUMERIC(LEFT(felt,7))
Avatar billede dm013 Nybegynder
05. august 2003 - 19:22 #5
OK,
men hvorledes gør jeg det, kan du give et eksempel eller henvisning til et?
Avatar billede arne_v Ekspert
05. august 2003 - 19:24 #6
Lige ud af landevejen:

SELECT ... FROM ... WHERE ISNUMERIC(LEFT(feltnavn,7))
Avatar billede dm013 Nybegynder
05. august 2003 - 19:29 #7
medfører en ADO-fejl
Avatar billede dm013 Nybegynder
05. august 2003 - 19:29 #8
Hele koden:

SELECT TOP 100 PERCENT Pr.Value AS result, C.Name AS Typenavn, LEFT(S.SampleId, 7) AS bnr, S.SampNo AS SampleID, C.CompNo AS type
FROM  FT120...Component C INNER JOIN
              FT120...Sample S INNER JOIN
              FT120...Prediction Pr ON S.SampNo = Pr.SampRef ON C.CompNo = Pr.CompRef INNER JOIN
              FT120...Product P ON S.ProdRef = P.ProdNo
WHERE ISNUMERIC( LEFT(S.SampleId, 7))
Avatar billede arne_v Ekspert
05. august 2003 - 19:32 #9
Prøv først lige at udføre den query i Query Analyzer og se om den virker der.
Avatar billede dm013 Nybegynder
05. august 2003 - 19:38 #10
jeg kan ikke gemme, får syntax fejl i linie 6

CREATE PROCEDURE dbo.tester_ft120
AS SELECT TOP 100 PERCENT Pr.Value AS result, C.Name AS Typenavn, LEFT(S.SampleId, 7) AS bnr, S.SampNo AS SampleID, C.CompNo AS type
FROM  FT120...Component C INNER JOIN
              FT120...Sample S INNER JOIN
              FT120...Prediction Pr ON S.SampNo = Pr.SampRef ON C.CompNo = Pr.CompRef
where isnumeric(left(S.sampleid,7))
GO
Avatar billede arne_v Ekspert
05. august 2003 - 19:42 #11
Prøv evt. med lidt parenteser:

FROM  (FT120...Component C INNER JOIN
              (FT120...Sample S INNER JOIN
              FT120...Prediction Pr ON S.SampNo = Pr.SampRef) ON C.CompNo = Pr.CompRef)
Avatar billede dm013 Nybegynder
05. august 2003 - 19:54 #12
den returnerer det som true(1) og false(0) så vidt jeg kan se
Avatar billede dm013 Nybegynder
05. august 2003 - 19:55 #13
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester