Προς το περιεχόμενο

SQL UPDATE


evagelos_21

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά σας παιδιά.

Εχω μία ερώτηση και θέλω να το κάνω μέσω SQL εντολές.

Εχω δυο στήλες Α,Β

 

Α Β

1 1

1 2

0 3

1 4

1 5

1 6

1 7

1 8

1 9

1 10

 

Υπάρχουν στην στηλη Α τιμές 0 και 1

Το πρόβλημα μου είναι ότι θα ήθελα στη στήλη Β να αλλάξει η αρίθμηση και να είναι ταξινομημένο κατα την στήλη Α

Δηλαδή να γίνει κάπως έτσι

1 1

1 2

1 3

1 4

1 5

1 6

1 7

1 8

1 9

0 10

Δημοσ.

Καλησπέρα evagelos_21

Προσπαθώ να καταλάβω τι θέλεις να κάνεις αλλά δυσκολέυομαι λιγάκι, η ταξινόμιση που ζητάς να γίνει δεν θα έχει σωστές τιμές.

Δηλάδη η εγγραφή που έχει Α = 0 έχει και Β = 3 στη ταξίνομηση όμως που ζητάς όταν Α = 0 τότε Β = 10 άρα η τιμή αυτή θα είναι λάθος.

:confused:

Δημοσ.

Δεν ξερω αν τα εχεις γραψει σωστα αλλα η μονη διαφορα στο πρωτο παραδειγμα και το δευτερο ειναι οτι ολα τα μηδενικα (εστω το ενα που υπαρχει) εχουν μεταφερθει κατω κατω ενω η Β στηλη δεν εχει αλλαξει και παραμενει 1,2,3,4...

 

Αν εννοεις οτι θα ηθελες να γινει καπως ετσι

 

1 1

1 2

1 4

1 5

1 6

1 7

1 8

1 9

1 10

0 3

 

Τοτε αυτο μπορεις να το κανεις με ενα απλο order by στα select statements (order by A desc) χωρις να αλλαξεις τιποτα

 

Τωρα αν ηθελες αυτο που ζητησες, δηλαδη να μεινει το Β ως εχει αλλα ολα τα μηδενικα στο Α να πανε κατω, πλεον μιλαμε για αλλαγη των εγγραφων και οχι για ταξινομηση.

Θα δοκιμαζα κατι σαν αυτο:

μετρα ποσες εγγραφες στον πινακα εχουν 0 (πχ 20 εγγραφες απο τις 100)

Κανε ενα select με order by B asc. Βρες τι τιμη Β εχει η 80η εγγραφη (αν θεωρησουμε οτι ισχυει το παραδειγμα που εδωσα με τις 20 στις 100)

Κανε ενα update και κανε set την τιμη 1 στις εγγραφες οπου η Β ειναι μεχρι την τιμη που βρηκες και 0 οπου ειναι πανω απο αυτην.

 

Ολα αυτα γινονται με απλη SQL αλλα δεν θυμαμαι τις εντολες απ'εξω και δεν εχω ορεξη να τις ψαξω

Δημοσ.

Δηλαδή αυτό που ζητάς είναι

SELECT A FROM tade ORDER BY A

και

SELECT B FROM tade ORDER BY B

αλλά να πάρεις ενωμένα τα αποτελέσματα;

 

Λογικά θα γίνεται με εμφωλευμένες SELECT του στυλ

SELECT A, B FROM (SELECT A FROM tade ORDER BY A, SELECT B FROM tade ORDER BY B)...

 

Η σύνταξη είναι στο περίπου (σπάνια χρησιμοποιώ SQL) αλλά δεν πρέπει να απέχει πολύ από το σωστό...

Δημοσ.

Παιδιά δεν θέλω να κάνω select αλλά update.

Δηλαδή τα πεδία στον πίνακα Α με τιμή 0 να αλλάξουν αρίθμηση στον πίνακα Β και να γίνουν μετά τα πεδία που έχουν τιμές 1

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...