Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


JOIN eller inte JOIN beroende på inparameter i sp

Postades av 2006-11-28 08:37:56 - Siri Haglund, i forum sql-server/msde, Tråden har 4 Kommentarer och lästs av 831 personer

Hej,
försöker göra en sp med en sql sats som ser olika ut beroende på en inparameter. Ifall inparametern är skild från null ska man joina med en extra tabell. Har försökt med CASE, men får inte till det... någon som har ett tips?

declare @Itemid varchar(10)
set @Itemid=null
SELECT b.batchid, p.productname 
FROM product p 
JOIN batch b ON p.productid = b.productid 
(CASE  when @itemid is not null then
           JOIN batchitem bi ON b.batchid = bi.batchid and b.ownerid = bi.ownerid
	end
)


Mvh Siri


Svara

Sv: JOIN eller inte JOIN beroende på inparameter i sp

Postades av 2006-11-28 09:21:16 - Andreas Hillqvist

Jag ser det mer lämpligt att ha två separata SP's och göra kontrollen utanför SP.

JAg tror inte man kan göra en casesats i from satsen. Utan du får göra en övergripande case/if-sats:

declare @Itemid varchar(10)
set @Itemid=null

CASE  
    WHEN @itemid IS NOT NULL THEN
        SELECT b.batchid, p.productname 
        FROM product p 
            JOIN batch b ON p.productid = b.productid 
            JOIN batchitem bi ON b.batchid = bi.batchid and b.ownerid = bi.ownerid

    ELSE
        SELECT b.batchid, p.productname 
        FROM product p 
            JOIN batch b ON p.productid = b.productid 
END


Svara

Sv:JOIN eller inte JOIN beroende på inparameter i sp

Postades av 2006-11-28 09:34:19 - Siri Haglund

OK, jag gör separata SP, tack ändå!

Använder CASE även i WHERE-satsen för att lägga till ett sökvillkor ifall en inparameter är null-skild:

AND
(CASE 
		WHEN ISNULL(p.productname, '') = '' THEN 
			UPPER(ISNULL(@Productname, ''))  
		ELSE 
			p.productname
		END  
		LIKE '%' + UPPER(ISNULL(@Productname, '')) + '%' )


men funderar på om det då blir en onödig LIKE-sökning i det fall @Productname är null?

Mvh Siri


Svara

Sv: JOIN eller inte JOIN beroende på inparameter i sp

Postades av 2006-11-28 11:05:20 - Andreas Hillqvist

Ta med produkter där produktnamnet matchar eller är null:

AND ((p.productname IS NULL) OR (p.productname LIKE '%' + @Productname + '%'))


Eller tar med samtliga poster om parameter saknas:
AND ((@Productname IS NULL) OR (p.productname LIKE '%' + @Productname + '%'))


Svara

Sv:JOIN eller inte JOIN beroende på inparameter i sp

Postades av 2006-12-08 10:54:20 - Siri Haglund

Tack!

Det senare alternativet (ta med samtliga poster..) är precis vad jag sökt! Toppen!

Mvh Siri


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 616
27 953
271 709
5 788
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies