Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

.net stuff for beginners from P. Lavidas

Πως μπορούμε να περάσουμε ένα string τύπου CSV με αριθμητικές τιμές και να το χρησιμοποιήσουμε απο τον SQL2005 σαν array of Integer

Καταρχήν, θα πρέπει να δημιουργήσουμε μια "Table-valued Function" με όνομα CsvToInt

USE [DATABASE ROOT NAME]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE Function [dbo].[CsvToInt]

(

   @CsvLikeString VARCHAR(2000)

)

   RETURNS @IntTable TABLE (ID INT)

AS

BEGIN

      IF @CsvLikeString <> ''

      BEGIN

         DECLARE @separator char(1)

         SET @separator = ','

         DECLARE @separator_position INT

         DECLARE @array_value VARCHAR(2000)

         SET @CsvLikeString = @CsvLikeString + ','

         WHILE patindex('%,%' , @CsvLikeString) <> 0

         BEGIN

            SELECT @separator_position = patindex('%,%' , @CsvLikeString)

            SELECT @array_value = LEFT(@CsvLikeString, @separator_position - 1)

            INSERT @IntTable Values (CAST(@array_value AS INT))

            SELECT @CsvLikeString = stuff(@CsvLikeString, 1, @separator_position, '')

         END

      END

   RETURN

END

Και στη συνέχεια μπορούμε να την χρησιμοποιήσουμε με τον απλό τρόπο:

         DECLARE @MyString varchar(50)
         SET
@MyString = '1,2,3,4,5,6'
         SELECT * FROM CsvToInt(@MyString)

 

Έχουν δημοσιευτεί Κυριακή, 5 Νοεμβρίου 2006 11:43 μμ από το μέλος plavidas

Ενημέρωση για Σχόλια

Αν θα θέλατε να λαμβάνετε ένα e-mail όταν γίνονται ανανεώσεις στο περιεχόμενο αυτής της δημοσίευσης, παρακαλούμε γίνετε συνδρομητής εδώ

Παραμείνετε ενήμεροι στα τελευταία σχόλια με την χρήση του αγαπημένου σας RSS Aggregator και συνδρομή στη Τροφοδοσία RSS με σχόλια

Σχόλια:

Χωρίς Σχόλια

Ποιά είναι η άποψή σας για την παραπάνω δημοσίευση;

(απαιτούμενο)
(προαιρετικό)
(απαιτούμενο)
ÅéóÜãåôå ôïí êùäéêü:
CAPTCHA Image
Καταχώρηση
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems