Avatar billede jmp.dk Nybegynder
04. april 2006 - 22:59 Der er 3 kommentarer og
1 løsning

Query (SQL ERROR)

Jeg er igang med at konvertere min database til MS Sql server fra en Gupta database.
I Gupta database kan jeg kalde:
Select * from supplier where 2 IN(SITE)
Hvor SITE er en varchar kolonne men komma seperede værdier.
EX 1,2,5,9

Når jeg kalder den kommando i MS SQL får jeg type fejl.
Hvad hedder den tilsvarende funktion i SqlServer?

Skal returnere en række hvis SITE='1,2,5,9'
Men ikke hvor SITE='1,5,12,22'
Avatar billede eagleeye Praktikant
05. april 2006 - 00:19 #1
Uden at kende meget til sqlserver så tror jeg problemet er at tallet tolkes som int og SITE som text når kolonne er varchar. Du kan evt. prøv med ' omkring 2 så det skulle tolkes som tekst:

Select * from supplier where '2' IN(SITE)


Se: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ca-co_2f3o.asp
Avatar billede jmp.dk Nybegynder
05. april 2006 - 09:54 #2
"Uden at kende meget til sqlserver så tror jeg problemet er at tallet tolkes som int og SITE som text når kolonne er varchar"
Ja det er fejl meddelsen siger!

Forslag virker ikke!, for at det skal virker skal SITE være i formatet '1','2','5','9'
Avatar billede eagleeye Praktikant
05. april 2006 - 10:58 #3
Jeg søgte på google.com og du kan lave en stored procudre som beskrevet her:
http://www.paladn.com/stored-procedure-lists.htm


Her er også en som besrkiver problemet og nogle løsninger:
http://www.sommarskog.se/arrays-in-sql.html
Avatar billede jmp.dk Nybegynder
12. april 2006 - 13:26 #4
For andre, dette virker:

charindex(',' + '2' + ',',','+ LIST_FOR_SITES+',' )>0
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