Σελ. 1 από 2 12 ΤελευταίαΤελευταία
Εμφάνιση 1-15 από 16
  1. #1
    Γειά σας,

    θα ήθελα την βοήθεια σας σε ένα πρόβλημα που αντιμετωπίζω και προσπαθώ να βρώ λύση.
    Κάνω insert σε ένα table κάποιων τιμών σε κάποιες στήλες.
    Η μορφή του table είναι κάπως έτσι:

    Κώδικας:
    id column1 column2 column3
    1    value1
    1                value2
    1                            value3
    για κάθε μοναδικό id (π.χ to 1) αν υπάρχουν εγγραφές είναι όπως παραπάνω.
    Πως μπορώ να εμφανίσω αυτά τα αποτελέσματα γι'αυτό το μοναδικό id σε μια γραμμή?

    Ευχαριστώ για τον χρόνο σας.

  2. #2
    Εγγραφή
    16-07-2004
    Περιοχή
    Θεσσαλονίκη
    Ηλικία
    55
    Μηνύματα
    2.059
    Downloads
    0
    Uploads
    0
    Τύπος
    PSTN
    Ταχύτητα
    20480/1024
    ISP
    ΟΤΕ Conn-x
    Router
    ZTE w300i
    Path Level
    Interleaved
    Αν καταλάβαμε καλά, το ID είναι μοναδικό (όχι οπως στο παράδειγμά σου).

    Η function που χρειάζεσαι είναι η ISNULL
    http://msdn.microsoft.com/en-us/library/ms184325.aspx

    δηλαδή κάτι σαν

    select ISNULL(column1, ISNULL(column2, ISNULL(column3, NULL))) as FinalColumn
    from THISTABLE
    where id=666

    Αν η column1 δεν είναι null θα φέρει την τιμή της, ειδάλλως της column2 η οποία αν
    είναι NULL θα φέρει της column3. Το τελευταίο NULL θα το φέρει αν είναι ΟΛΕΣ null.

    Το αποτέλεσμα ΕΡΧΕΤΑΙ ΣΕ ΜΙΑ στήλη (την FinalColumn)
    Όλα τα παιχνίδια android που έχω φτιάξει περιγράφονται και κατεβαίνουν
    από εδώ: https://play.google.com/store/apps/d...=Carbon+People

  3. #3
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Aφού τα υπόλοιπα είναι Null και το
    Κώδικας:
    SELECT column1+column2+column3
    δεν θα παίξει στον SQL Server που δεν είναι απαιτητικός σε types?
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  4. #4
    Εγγραφή
    13-02-2007
    Περιοχή
    Χαλάνδρι
    Ηλικία
    41
    Μηνύματα
    2.759
    Downloads
    3
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    99999/9997
    ISP
    ΟΤΕ Conn-x
    Router
    Speedport W 724V
    SNR / Attn
    10.2(dB) / 6.5(dB)
    Το αποτέλεσμα οποιασδήποτε πράξης με null είναι απροσδιόριστο, δηλαδή null.
    Μπορείς να χρησιμοποιήσεις την COALESCE ή οποία επιστρέφει το πρώτο non null ορισμα.

    Κώδικας:
    SELECT id, COALESCE(column1, column2, column3) AS value
    FROM T1
    GROUP BY id, value;
    Το καλύτερο που έχεις να κάνεις είναι να φτιάξεις τον πίνακα σωστα.


    I don't care if we have only one percent of the users, as long as they're the best one percent.
    It's a clear choice for quality over quantity, and originality over following the herd. I like that.

  5. #5
    Εγγραφή
    25-03-2009
    Ηλικία
    41
    Μηνύματα
    507
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ HOL Full
    Ταχύτητα
    14886/1022
    ISP
    HOL
    DSLAM
    HOL - ΑΡΤΑ
    Router
    3COM OfficeConnect
    SNR / Attn
    9(dB) / 27(dB)
    Ο pmember2009 λέει ότι θέλει τις στήλες να βγαίνουν όλες σε μία εγγραφή. Όχι να βγαίνει μία στήλη με πολλές γραμμές.

    Παράθεση Αρχικό μήνυμα από pmember2009 Εμφάνιση μηνυμάτων

    Κώδικας:
    id column1 column2 column3
    1    value1
    1                value2
    1                            value3
    Ο πίνακας τι κλειδί έχει; Για κάθε διαφορετικό id έχεις 3 εγγραφές;

    Αν ισχύει αυτό τότε θες :
    Κώδικας:
    select A.column1, B.column2, C.column3
    from table_name A
    inner join table_name B
    on A.id = B.id 
    and b.column2 is not null
    inner join table_name C
    on A.id = C.id 
    and C.column3 is not null
    where A.id = 3
    Αυτό είναι εντελώς ηλίθιο και θα πρέπει οπωσδήποτε να αλλάξει το σχήμα του πίνακα.

  6. #6
    Εγγραφή
    13-02-2007
    Περιοχή
    Χαλάνδρι
    Ηλικία
    41
    Μηνύματα
    2.759
    Downloads
    3
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    99999/9997
    ISP
    ΟΤΕ Conn-x
    Router
    Speedport W 724V
    SNR / Attn
    10.2(dB) / 6.5(dB)
    Μάλλον έχεις δίκιο karnage οπως το ξαναδιάβασα, βασικά είναι φλου. Το μόνο σίγουρο είναι οτι υπάρχει σχεδιαστικό πρόβλημα με τον πίνακα εκτος αν μιλάμε για raw ντατο που πρέπει να ισιώσει.


    I don't care if we have only one percent of the users, as long as they're the best one percent.
    It's a clear choice for quality over quantity, and originality over following the herd. I like that.

  7. #7
    Εγγραφή
    16-07-2004
    Περιοχή
    Θεσσαλονίκη
    Ηλικία
    55
    Μηνύματα
    2.059
    Downloads
    0
    Uploads
    0
    Τύπος
    PSTN
    Ταχύτητα
    20480/1024
    ISP
    ΟΤΕ Conn-x
    Router
    ZTE w300i
    Path Level
    Interleaved
    Γιατί το παιδεύετε?

    select ISNULL(column1, ISNULL(column2, ISNULL(column3, NULL))) as FinalColumn
    from THISTABLE
    where id=666

    βγάζει ΜΙΑ στήλη όπως θέλει ο φίλος (?), επιλέγοντας από τις τρείς στήλες όποια ΔΕΝ έχει null τιμή.
    Μάλιστα λαμβάνει υπόψιν και προτίμηση σε τιμή (με τη σειρά 1/2/3 αν έχουμε πολλές στήλες non-NULL)
    καθώς και λαμβάνει και την περίπτωση να είναι όλες οι τιμές μιας γραμμής NULL

    Σίγουρα ο πίνακας του φίλου είναι περίεργα σχεδιασμένος, ας μας πεί μήπως θέλει κάτι άλλο.
    Όλα τα παιχνίδια android που έχω φτιάξει περιγράφονται και κατεβαίνουν
    από εδώ: https://play.google.com/store/apps/d...=Carbon+People

  8. #8
    Εγγραφή
    13-02-2007
    Περιοχή
    Χαλάνδρι
    Ηλικία
    41
    Μηνύματα
    2.759
    Downloads
    3
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    99999/9997
    ISP
    ΟΤΕ Conn-x
    Router
    Speedport W 724V
    SNR / Attn
    10.2(dB) / 6.5(dB)
    Γιατί το παιδεύετε?
    Ίσως γιατι δεν θέλει αυτο που κάνεις όπως επίσης το γεγονός οτι τρόπος που χρησιμοποιείς την isnull είναι παράδειγμα προς αποφυγείν εφόσον υπάρχει η coalesce? Αν έχω καταλάβει καλά το ζητούμενο είναι κάτι τέτοιο

    Κώδικας:
    id column1 column2 column3
    1  value1    value2     value3
    Και η καλύτερη προσέγγιση είναι είτε με self join όπως έγραψε ο φίλος πιο πάνω ή update του πίνακα στα null και aggregation.


    I don't care if we have only one percent of the users, as long as they're the best one percent.
    It's a clear choice for quality over quantity, and originality over following the herd. I like that.

  9. #9
    Εγγραφή
    16-07-2004
    Περιοχή
    Θεσσαλονίκη
    Ηλικία
    55
    Μηνύματα
    2.059
    Downloads
    0
    Uploads
    0
    Τύπος
    PSTN
    Ταχύτητα
    20480/1024
    ISP
    ΟΤΕ Conn-x
    Router
    ZTE w300i
    Path Level
    Interleaved
    I rest my case,

    εφόσον ο original poster δεν βλέπει τις απαντήσεις δεν θα μάθουμε ποτέ τι θέλει
    να κάνει. Ας μη γίνει εδώ αρένα....
    Όλα τα παιχνίδια android που έχω φτιάξει περιγράφονται και κατεβαίνουν
    από εδώ: https://play.google.com/store/apps/d...=Carbon+People

  10. #10
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Παράθεση Αρχικό μήνυμα από Thuglife Εμφάνιση μηνυμάτων
    Το αποτέλεσμα οποιασδήποτε πράξης με null είναι απροσδιόριστο, δηλαδή null.
    Σε μια εφαρμογή VBA στο Immediate window κάνε
    ? "ab" & Null & 1
    Αν νομίζεις ότι θα βγάλει Null απατάσαι
    Θυμάμαι ότι ο SQL Server δεν είναι ιδιαίτερο αυστηρός σε type conversions (αλλά δεν υποστηρίζει και τον τελεστή &).

    Τέσπα. Όπως λέει και ο zardoz ας δούμε τι θέλει πρώτα ο ποιητής και τι εννοεί με το uniqueness του id και βλέπουμε.
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  11. #11
    Εγγραφή
    13-02-2007
    Περιοχή
    Χαλάνδρι
    Ηλικία
    41
    Μηνύματα
    2.759
    Downloads
    3
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    99999/9997
    ISP
    ΟΤΕ Conn-x
    Router
    Speedport W 724V
    SNR / Attn
    10.2(dB) / 6.5(dB)
    Μόνο που η VBA δεν έχει καμία απολύτως σχέση με sql και rdbms. Σύμφωνα με το SQL-92 οποιοδήποτε expression περιέχει NULL κάνει evaluate σε NULL, σε αυτό κάνει conform και ο sql server για τον οποίο μιλάμε.

    Στην sql το NULL συμβολίζει την άγνωστη τιμή, όχι το κενό. Με άγνωστη τιμή δεν μπορείς να κάνεις πράξη.

    Δεν καταλαβαίνω ακριβώς τι εννοείς για τα type conversions αλλά ίσως σε μπερδεύουν τα implicit casts. Ενα παράδειγμα ίσως?


    I don't care if we have only one percent of the users, as long as they're the best one percent.
    It's a clear choice for quality over quantity, and originality over following the herd. I like that.

  12. #12
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Παίζουμε με τις λέξεις μου φαίνεται. Αντί για VBA κάντο σε ένα query της MS Access αλλάζοντας είτε το string είτε τον αριθμό με πεδίο ενός πίνακα.
    Άσε, μην απαντήσεις... Θα βγάλεις την SQL και το RDBMS και θα μείνεις με το SQL-92
    Οπότε η πρότασή σου "Το αποτέλεσμα οποιασδήποτε πράξης με null είναι απροσδιόριστο, δηλαδή null." τελικά καταλήγει σε "Το αποτέλεσμα οποιασδήποτε πράξης με null είναι απροσδιόριστο, δηλαδή null στον SQL Server"
    Ευχαριστώ για την πληροφορία.

    Eπίσης μου κάνει εντύπωση πως δεν καταλαβαίνεις τι εννοώ με το type conversion και θα έπρεπε να πω implicit cast όταν το cast (implicit/explicit) κάνει type conversion. Το παράδειγμα στο έδωσα παραπάνω.
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  13. #13
    Εγγραφή
    25-03-2009
    Ηλικία
    41
    Μηνύματα
    507
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ HOL Full
    Ταχύτητα
    14886/1022
    ISP
    HOL
    DSLAM
    HOL - ΑΡΤΑ
    Router
    3COM OfficeConnect
    SNR / Attn
    9(dB) / 27(dB)
    Ο pmember2009 είτε βρήκε μόνος του λύση είτε ξέχασε ότι ξεκίνησε thread ... δεν χρειάζεται περαιτέρω ανάπτυξη του θέματος θα έλεγα.

  14. #14
    Εγγραφή
    13-02-2007
    Περιοχή
    Χαλάνδρι
    Ηλικία
    41
    Μηνύματα
    2.759
    Downloads
    3
    Uploads
    0
    Τύπος
    VDSL2
    Ταχύτητα
    99999/9997
    ISP
    ΟΤΕ Conn-x
    Router
    Speedport W 724V
    SNR / Attn
    10.2(dB) / 6.5(dB)
    To "είναι ιδιαίτερα αυστηρός" δεν καταλαβα , οχι το type conversion. Δώσε ένα παράδειγμα αυστηρότητας και μη αυστηρότητας σε implicit cast.

    ...και η access είναι το μόνο "rdbms" στον κόσμο που είναι καλύτερο στο να τυπώνει ετικέτες παρά να διαχειρίζεται data. Οπότε για την ακρίβεια θα βγάλω την SQL, rdbms και ANSI SQL-92 και θα μείνεις με την access. :P


    http://www.sqlite.org/nulls.html


    I don't care if we have only one percent of the users, as long as they're the best one percent.
    It's a clear choice for quality over quantity, and originality over following the herd. I like that.

  15. #15
    Καλησπέρα σε όλους,

    θέλω να ζητήσω συγγνώμη για την καθυστερημένη απάντηση μου και να σας ευχαριστήσω όλους για τις προτάσεις και τις λύσεις. Ξέρω ότι είναι χαζός ο τρόπος που περνάω έτσι τα δεδομένα αλλά υπάρχει λόγος να είναι έτσι..πρός το παρόν. Το id είναι μοναδικό και θέλω να βγάζω τα αποτελέσματα για κάθε id ανά γραμμή. Θα δοκιμάσω τις λύσεις που προτείνετε και θα σας ενημερώσω σχετικά.

    Ευχαριστώ

Σελ. 1 από 2 12 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. SQL SERVER 2000 & WINDOWS VISTA ΑΣΥΜΒΑΤΟΤΗΤΑ ?
    Από plithon στο φόρουμ Windows
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 16-03-09, 19:13
  2. Hamachi και SQL Server 2000
    Από coby στο φόρουμ Networking
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 10-01-08, 10:12
  3. Πόση RAM για να τρέχει SQL SERVER 2000
    Από nikgik στο φόρουμ Motherboards, CPU και memory
    Μηνύματα: 3
    Τελευταίο Μήνυμα: 19-10-07, 20:09
  4. HELP: SQL Server 2000 Linked Server Views
    Από yiapap στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 6
    Τελευταίο Μήνυμα: 10-08-04, 20:25

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας