Καλησπέρα. Έχω ένα απλό sql query που όταν το τρέχω μου φέρνει τα ids ενός πίνακα. Φανταστείτε στην βάση pubs (Sql server 2000) να πω :
1 2 |
use pubs SELECT job_id FROM jobs |
Εγώ όμως θέλω όμως να φέρω όλα τα id σε μία στήλη σαν string του στυλ 1,2,3,4,5,6,7,... κτλ
Το παρακάτω παίζει μια χαρά και το κάνει. ΟΜΩΣ αν κάνω σχόλιο την γραμμή 17 και βγάλω το σχόλιο από την 18, μου βγάζει error : Syntax error converting the varchar value '1,2,3,4,5,6,7,8,9,10,11,12,13,14,0' to a column of data type smallint. Και είναι λογικό διότι τα είχα μετατρέψει όλα σε varchar. Πώς μπορεί να γίνει μόνο με χρήση SQL και οχι να καλέσω την γραμμή 18 από μια asp σελίδα ?? (γιατί με asp το παίρνει το έχω δοκιμάσει !)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
use pubs declare @jobId smallint, @ids varchar(8000), @zero smallint set @zero=0 SET @ids =''
DECLARE cCursor CURSOR LOCAL FOR SELECT job_id FROM jobs OPEN cCursor FETCH NEXT FROM cCursor INTO @jobId WHILE @@FETCH_STATUS=0 Begin SET @ids = @ids + CAST(@jobId AS varchar(7)) + ',' FETCH NEXT FROM cCursor INTO @jobId End CLOSE cCursor DEALLOCATE cCursor SET @ids = Replace(@ids, Char(39), '') + CAST(@zero AS varchar(7)) SELECT @ids
-- select * from jobs where (job_id IN (@ids)) |
Ευχαριστώ