Oracle
MySQL'am, Postgresam un vēl iespējams šim tam ir daiļa nestandarta konstrukcija LIMIT from, how much
Piem., iekš Oracle šādas lietas nav. Taču, viens daiļš selekts prot to imitēt.
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT * FROM (
SELECT
order-key,
data-values
FROM
table
ORDER BY
order-key DESC
) WHERE rownum <= max-limit
) ORDER BY order-key ASC
) WHERE rownum <= min-limit
) ORDER BY order-key DESC
Pie kam, iesaku ar šo rownum
uzmanīties. Elfz iepointoja, ka jamo var salīdzināt tikai ar <
vai <=
. Piem., SELECT COUNT(lauks) FROM table WHERE rownum > 1
vai SELECT COUNT(lauks) FROM table WHERE rownum >= 2
atgriezīs 0 pat tad, ja tabulā ir dikti daudz ierakstu.
hm
2004. gada 28. janvārī, plkst. 11:44
varbuut shitaa ir labaak? select * from (select rownum rownum1, doc_rsn from tw1_document) where rownum1>10 and rownum1<20
shitas buus baigais DB hits ganjau... bet es nezinu kas ir sliktaak tie 5 selekti vai shie 2...
DazzleWand
2004. gada 28. janvārī, plkst. 12:04
Ņja ... dazji labi Oracle "guru" šo to sliktu pateiktu par piecu līmeņu subselectu ...
sorehead
2004. gada 28. janvārī, plkst. 13:04
oracle ir speciāls vaicājumu optimizācijas rīks, ar kuru tad arī ir iespējams pārbaudīt, kurš no vaicājumiem izpildās ātrāk (tas protams ir vesels kurss priekšmētā DBVS, bet nu tomēr, iespēja pastāv)..
hm
2004. gada 28. janvārī, plkst. 13:27
var arii pastiities execution plaanu ar visiem laikiem ;]
Jāzeps
2004. gada 28. janvārī, plkst. 13:45
A kāpēc tie ORACLE veidotāji neuzveido tādu pašu?
whateva
2004. gada 28. janvārī, plkst. 13:51
SELECT num, info FROM (SELECT ROWNUM num, info FROM (SELECT info FROM some_table ORDER BY info)) WHERE num BETWEEN 2 AND 10
shitaa var ar nedaudz mazaak subselectiem to pashu dabuut
whateva
2004. gada 28. janvārī, plkst. 13:53
pie tam explain plans uzraada, ka tas ir ap 3x lapaaks nekaa ar 5 subselectiem
Tigers
2004. gada 28. janvārī, plkst. 13:56
Ar rownumu viss būtu kulē, ja viņš to ieraksta numuru piemestu pēc tam, kad resultsets ir noorderēts. Bet to viņš izdarīt nevar, rezultātā nākas šitā dilsties. Hm variants liekas vienkāršāks, bet tais fullscan visai tabulai.
whateva
2004. gada 28. janvārī, plkst. 14:03
bet protams, jo tak saorderēt vajag. uzliec indexu un būs ok :P
endrju
2004. gada 28. janvārī, plkst. 17:37
Es paklusēšu... Oracle speciālisti...
laacz
2004. gada 28. janvārī, plkst. 17:39
endrju:
a) Kurš teica, ka speciālisti, izņemot Tevi? (Paldies par komplimentu) b) Paklusē gan, nespeciālist :)
endrju
2004. gada 29. janvārī, plkst. 09:27
Nestreso laacz ;-) Paranoja, ka visi vēl ļaunu vai brauc augumā? Da beidz... tas nav manā stilā.
Livingston
2004. gada 30. janvārī, plkst. 16:13
Njā, ta ir Subselektu Kings no visiem, ko esmu redzējis :)
Abi krietni īsāki par to murgu :)
whateva
2004. gada 30. janvārī, plkst. 17:23
to tad esi veel maz redzeejis, ja tas ir subselectu kings :D lai gan raxtot vienkaarshi selectu no ashpadsmittabulaam var to pashu uzraxtiit ar subselectiem, depends on tabulu, ierakstu skaitu un indexiem
Livingston
2004. gada 30. janvārī, plkst. 17:42
Nu redzējis es esmu ļoti daudz, bet kings tas ir tādēļ, ka dara TIK elementāru lietu TIK samudrītā veidā.
Ir nācies redzēt arī gana daudz konstrukcijas
select .. where kaut_kas in (select .. where kaut_kas in (select .. where kaut_kas in (select .. where kaut_kas in (select .. where kaut_kas in
utt.
Bet tam selektam arī uzdevums bija nedaudz nopietnāks. Bet vienalga smieklīgi, ņemot vērā, ka to kodu rakstīja profesionāļi.
whateva
2004. gada 30. janvārī, plkst. 17:59
bivajet, ka triviālām lietām meklējam superbuper sarežgītus risinājumus, pašam tā ir bijis :)