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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MSSQL] Betingelser i SQL
Fra : Jesper Nielsen


Dato : 20-06-05 16:50

Hej gruppe

Kan man i MSSQL (2000) gøre noget á la dette:

SELECT Description AS Descr, IF l.Field = 0 THEN 'Nej' ELSE 'Ja' AS Cond
FROM List AS l;

Ovenstående virker selvsagt ikke, men er der nogen, som kan komme med et
hint til, hvordan man skal gøre det?

--
Mvh. Jesper



 
 
Jens Gyldenkærne Cla~ (20-06-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-06-05 18:39

Jesper Nielsen skrev:

> SELECT Description AS Descr, IF l.Field = 0 THEN 'Nej' ELSE
> 'Ja' AS Cond FROM List AS l;

SELECT CASE l.Field WHEN 0 THEN 'Nej' ELSE 'Ja' END as Cond
FROM List

Man kan godt have flere WHEN-led:

   CASE felt
       WHEN 0 THEN 'Nul'
       WHEN 1 THEN 'En'
       ELSE 'Flere'
   END as Antal

Der er også en udvidet syntaks, hvor man specificerer hele udtryk i
hvert WHEN-led:

SELECT 'Price Category' =
CASE
WHEN price IS NULL THEN 'Not yet priced'
WHEN price < 10 THEN 'Very Reasonable Title'
WHEN price >= 10 and price < 20 THEN 'Coffee Table Title'
ELSE 'Expensive book!'
END,
CAST(title AS varchar(20)) AS 'Shortened Title'
FROM titles
ORDER BY price

(sidste eksempel sakset fra BOL, hvor hele syntaksen også er
forklaret)
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jesper Nielsen (20-06-2005)
Kommentar
Fra : Jesper Nielsen


Dato : 20-06-05 20:34

> SELECT CASE l.Field WHEN 0 THEN 'Nej' ELSE 'Ja' END as Cond
> FROM List

Takker - works like a charm.


> (sidste eksempel sakset fra BOL, hvor hele syntaksen også er
> forklaret)

Havde ledt i BOL, men var ikke lige klar over, at jeg skulle bruge en CASE.
Ved du tilfældigvis også, hvad MSSQL's udgave af EXPLAIN er? Jeg kan ikke
lige umiddelbart finde ud af, hvad det er jeg skal bruge eller søge efter.

--
Mvh. Jesper



Peter Lykkegaard (20-06-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-06-05 22:12

"Jesper Nielsen" wrote

> Ved du tilfældigvis også, hvad MSSQL's udgave af EXPLAIN er?

Hvis du skal i gang med at optimere på MSSQL så skal du have fat i Query
Analyzeren der følger med MSSQL

- Peter



Jesper Nielsen (20-06-2005)
Kommentar
Fra : Jesper Nielsen


Dato : 20-06-05 22:28

> Hvis du skal i gang med at optimere på MSSQL så skal du have fat i Query
> Analyzeren der følger med MSSQL

Den har slet ikke en kommando, som fortæller mig hvilke indexes MSSQL har
tænkt sig at bruge ifbm. afviklingen af en specifik query eller?

--
Mvh. Jesper



Jens Gyldenkærne Cla~ (21-06-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 21-06-05 08:55

Jesper Nielsen skrev:

> Den har slet ikke en kommando, som fortæller mig hvilke indexes MSSQL har
> tænkt sig at bruge ifbm. afviklingen af en specifik query eller?

Har du prøvet "Show Execution Plan" (Ctrl-K) - el. evt. Show
Trace/Statistics (alle tilgængelige via query-menuen samt punktet
"Execute mode" fra værktøjslinjen (med en tabel som ikon).

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Gyldenkærne Cla~ (20-06-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-06-05 21:25

Jesper Nielsen skrev:

> Ved du tilfældigvis også, hvad MSSQL's udgave af EXPLAIN er?

Nej - jeg kender slet ikke til brug af EXPLAIN.

Hvilke oplysninger er det du vil have ud?

Du kan måske bruge lidt af følgende:

SELECT * FROM INFORMATION_SCHEMA.TABLES

EXEC sp_help 'objektnavn'
EXEC sp_helpindex 'objektnavn'
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Peter Lykkegaard (20-06-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-06-05 22:11

"Jens Gyldenkærne Clausen" wrote
> Jesper Nielsen skrev:
>
>> Ved du tilfældigvis også, hvad MSSQL's udgave af EXPLAIN er?
>
> Nej - jeg kender slet ikke til brug af EXPLAIN.
>
http://sunsite.mff.cuni.cz/MIRRORS/ftp.mysql.com/doc/en/EXPLAIN.html

- Peter



Peter Lykkegaard (20-06-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-06-05 22:52

Jesper Nielsen wrote:
>
> Den har slet ikke en kommando, som fortæller mig hvilke indexes MSSQL har
> tænkt sig at bruge ifbm. afviklingen af en specifik query eller?
>
Kik i menuerne
Query -> Show execution plan

NB! Du får flere "tabs" i dit result vindue

- Peter


Jesper Nielsen (21-06-2005)
Kommentar
Fra : Jesper Nielsen


Dato : 21-06-05 13:43

Kik i menuerne
Query -> Show execution plan

NB! Du får flere "tabs" i dit result vindue

Jamen sørme så
Tak til jer begge.

--
Mvh. Jesper



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408188
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste