/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Elegant SELECT
Fra : Jens Vestergaard


Dato : 06-01-03 20:15

Folks,
Nedenstående *elegant*, please ...

Jeg kan gøre det, men temmelig u-elegant.

Pseudo-SQL:

SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder [kriterium
1] AND 50% opfylder [kriterium 2]

.....?

--
mvh
Jens Vestergaard
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp





 
 
Tomas Christiansen (06-01-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 06-01-03 20:54

Jens Vestergaard skrev:
> SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder
[kriterium
> 1] AND 50% opfylder [kriterium 2]

Søger du at få en SQL-database til at opføre sig "tilfældigt"?
Det kan man da vist ikke?

Forklar nærmere.

-------
Tomas


Peter Lykkegaard (06-01-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 06-01-03 21:38

Som svar på skriblerier forfattet af Tomas Christiansen

> Jens Vestergaard skrev:
>> SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder
>> [kriterium 1] AND 50% opfylder [kriterium 2]
>
> Søger du at få en SQL-database til at opføre sig "tilfældigt"?
> Det kan man da vist ikke?
>
MSSQL/T-SQL har en RAND function
Muligvis kan det lade sig gøre vha en cursor og en temporary table
Kunne være rart at vide hvilket RDBMS der er tale om

mvh/Peter Lykkegaard



Jens Vestergaard (06-01-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 06-01-03 21:50

"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:avcms2$blu$1@news.cybercity.dk...
> Jens Vestergaard skrev:
> > SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder
> [kriterium
> > 1] AND 50% opfylder [kriterium 2]
>
> Søger du at få en SQL-database til at opføre sig "tilfældigt"?
> Det kan man da vist ikke?
>
> Forklar nærmere.

Njae, det er såmænd ikke selve tilfældigheden, der er det centrale, den kan
jeg klare på anden vis (hvis ikke er en løsning i SQL-sætningen) - det er
mere WHERE-sætningen, hvor *alle* records skal opfylde et kriterium, og så
skal jeg sikre, at præcis xx% også opfylder et andet.

Altså, f.eks: Jeg skal bruge 50 records, hvor alle har [Felt 1] = 'YY', og
hvor de 25 af disse 50 (hverken flere eller færre) *også* har [Felt 2] =
'ZZ'.


--
mvh
Jens Vestergaard
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



Mikkel Bundgaard (06-01-2003)
Kommentar
Fra : Mikkel Bundgaard


Dato : 06-01-03 22:41

On Mon, 06 Jan 2003 21:49:43 +0100, Jens Vestergaard wrote:
> Njae, det er såmænd ikke selve tilfældigheden, der er det centrale, den
> kan jeg klare på anden vis (hvis ikke er en løsning i SQL-sætningen) -
> det er mere WHERE-sætningen, hvor *alle* records skal opfylde et
> kriterium, og så skal jeg sikre, at præcis xx% også opfylder et andet.
>
> Altså, f.eks: Jeg skal bruge 50 records, hvor alle har [Felt 1] = 'YY',
> og hvor de 25 af disse 50 (hverken flere eller færre) *også* har [Felt
> 2] = 'ZZ'.
Udvælg først 25, der overholder begge krav. Derefter endnu 25, der kun
overholder det første, men ikke det andet. Union imellem disse 50 records
og du har hvad du ønsker
--
Mikkel Bundgaard
Student at IT University of Copenhagen
Codito, Ergo Sum

Tomas Christiansen (06-01-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 06-01-03 22:46

Mikkel Bundgaard skrev:
> Udvælg først 25, der overholder begge krav. Derefter endnu 25, der
kun
> overholder det første, men ikke det andet. Union imellem disse 50
records
> og du har hvad du ønsker

Øv! Så nåede du lige at komme "ind foran" med dit indlæg

Jeg har samme forslag, men vil (i forbindelse med en Oracle database)
huske at bruge UNION ALL (det sparer en sortering).

-------
Tomas


Jens Vestergaard (07-01-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 07-01-03 09:22

"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:avcter$pi4$1@news.cybercity.dk...
> Mikkel Bundgaard skrev:
> > Udvælg først 25, der overholder begge krav. Derefter endnu 25, der
> kun
> > overholder det første, men ikke det andet. Union imellem disse 50
> records
> > og du har hvad du ønsker
>
> Øv! Så nåede du lige at komme "ind foran" med dit indlæg
>
> Jeg har samme forslag, men vil (i forbindelse med en Oracle database)
> huske at bruge UNION ALL (det sparer en sortering).

Jamen, er det ikke fremragende? Jeg bruger SQL så lidt (og til så ens
opgaver), at jeg aldrig er stødt på UNION - men så er det jo herligt at
vide, hvor man kan få hjælp.

Man takker


--
mvh
Jens Vestergaard
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408879
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste