Avatar billede hjuler Nybegynder
06. februar 2003 - 10:24 Der er 7 kommentarer

Convert eller Cast

Jeg har lidt problemer med at covertere en char til en int når det er i forbindelse med et alias

Jeg har følgende sql som ikke virker

select DISTINCT U.Name from UNIT U
INNER join UnitINV UI_1 on UI_1.UnitID = U.UnitID INNER join INV I_1 on UI_1.InvID = I_1.InvID
INNER join UnitINV UI_2 on UI_2.UnitID = U.UnitID INNER join INV I_2 on UI_2.InvID = I_2.InvID
WHERE
(I_1.name = 'CPU' and I_1.Value = 'Intel') AND (I_2.name = 'Processor Speed' and I_2.Convert(Int, Value) > 1500) 
AND
type=1 order by U.Name

problemet er at mit value felt både kan være tekst og tal. Når jeg kører en sql uden alias
Avatar billede hjuler Nybegynder
06. februar 2003 - 10:25 #1
det er i denne del af sql'en den er galt

I_2.Convert(Int, Value) > 1500)
Avatar billede ocp Nybegynder
06. februar 2003 - 10:54 #2
Således?:

cast(i_2.value as int) > 1500
Avatar billede ocp Nybegynder
06. februar 2003 - 10:55 #3
i stedet for i_2.convert(...), selvfølgelig.
Avatar billede hjuler Nybegynder
06. februar 2003 - 11:07 #4
Det virker heller ikke
Avatar billede ocp Nybegynder
06. februar 2003 - 11:14 #5
Det er altså sådan at der nogen gange står en tekst og andre gange et tal? Giver nedestående så nogen mening?

Prøv at placere dette i dit where-statement:

and (
      ( isnumeric(i_2.value) = 1 and cast(i_2.value as int) > 1500 )
      or ( isnumeric(i_2.value) = 0 and i_2.value = 'test' )
    )
Avatar billede hjuler Nybegynder
06. februar 2003 - 12:34 #6
yes det virker

mange tak
Avatar billede ocp Nybegynder
06. februar 2003 - 12:46 #7
Og et svar!
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