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

sql count columns


function

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

Δημοσ.

Καλημέρα παιδιά,

Έχω κάποιο πρόβλημα σε μια βάση δεδομένων SQL SERVER 2008. Ένας πίνακας περιέχει 4 πεδία (το ένα από αυτά είναι automatic increment).

Τα υπόλοιπα πεδία είναι text και περιέχουν ονόματα το καθένα, αλλά όχι όλα....τι εννοώ?

Πχ. ο πίνακας μπορεί να είναι έτσι:

 

=================================================================================================================================

name1 -------- name2 -------- name3

------------------------------------------------

Κώστας Γιάννης

Λευτέρης

Γιάννης Όλγα Στέλιος

=================================================================================================================================

Προσπαθώ να βρω ένα query που να μου επιστρέφει για κάθε row πόσα από τα πεδία έχουν περιεχόμενο μέσα.

Δηλαδή στην πρώτη σειρά το count πρέπει να μου επιστρέψει 2, στην δεύτερη 1 και στην τρίτη 3.

Υπάρχει τρόπος?

 

Ευχαριστώ πολύ!

Δημοσ.

Αν και δεν ξέρω από SQL SERVER, εγώ στην θέση σου θα έφτιαχνα procedure για αυτή την δουλειά -- μου φαίνεται πιο εύκολο και πιο λογικό...

 

φιλικά,

Δημοσ.

Αν θεωρείς χωρίς περιεχόμενο μόνο τα null πεδία τότε

 

>select id ,
      (case when name1 is not null then 1 else 0 end) +
      (case when name2 is not null then 1 else 0 end) +
      (case when name3 is not null then 1 else 0 end)
from tablename 

 

αν θεωρείς χωρίς περιεχόμενο και αυτά με κενούς χαρακτήρες τοτε

 

>select id ,
      (case when rtrim(ltrim(name1)) is not null then 1 else 0 end) +
      (case when rtrim(ltrim(name2)) is not null then 1 else 0 end) +
      (case when rtrim(ltrim(name3)) is not null then 1 else 0 end)
from tablename 

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

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

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