Εχω την εντύπωση οτι θα ακούσω πράγματα για το συγκεκριμένο θέμα όπως "το έχουμε αναλύσει ήδη σε 100+ προηγούμενα posts" και άλλα τέτοια όμορφα, αλλά κανείς δεν έχασε τίποτα ρωτώντας.
Εχω ένα πινακάκι που αποτελειται από τρία πεδία:
id int identity
title nvarchar(100)
ord int
Θέλω να φέρω τα id, title ταξινομημένα κατά ord. Μέχρι εδώ καλά. Θέλω όμως να κοτσάρω και μια πρώτη εγγραφή, η οποία δεν βρίσκεται στον πίνακα, με τίτλο π.χ. "Please select a value". Το σημαντικό εδώ είναι ότι για διάφορους λόγους πρέπει να φέρω ΑΚΡΙΒΩΣ τα δύο αυτά πεδία, με συγκεκριμένα ονόματα, και κανένα άλλο.
Ετσι λοιπόν δεν μπορώ να κάνω αυτό:
select N'--- Please select a value' as mytitle, 0 as myid ,0 as ord
union all
select title as mytitle, id as myid,ord from mytable
order by ord asc
(mytitle, myid είναι τα υποτιθέμενα aliases που θα πρέπει να χρησιμοποιήσω).
Αν το κάνω αυτό, τότε παίρνω και τη στήλη ord που δεν τη θέλω.
Μπορώ όμως να κάνω αυτό:
select N'--- Please select a value' as mytitle, 0 as myid
union all
select tmp.myid, tmp.mytitle from (
select top 100 percent title as mytitle, id as myid from mytable
order by mytable.ord asc
) tmp
Ο μόνος τρόπος να πετύχω αυτό που θέλω και να δουλέψει αυτό το ordering είναι να χρησιμοποιήσω το 99.99 percent. Και ερωτώ: Είναι σωστό; Μήπως υπάρχει κάτι άλλο που θα μπορούσα / θα έπρεπε να δοκιμάσω;
Σωτήρης Φιλιππίδης
DotSee Web Services