Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MSSQL Union mit 3 Selects nur wenn nicht leer

Frage Entwicklung Datenbanken

Mitglied: joni2000de

joni2000de (Level 1) - Jetzt verbinden

18.12.2011 um 22:05 Uhr, 3960 Aufrufe, 5 Kommentare

Hi Admins,

ich hoffe mal wieder auf eure Hilfe. Ich habe ein Abfrage mit 3 Selects die mit Union verbunden sind. Soweit funktioniert auch alles, doch im 3. Select ist es möglich, dass ein NULL zurückgeliefert wird (nur in einer bestimmten, nämlich der relvanten, Spalte). Jetzt möchte ich, wenn in dieser Spalte ein NULL geliefert wird, das letzte Select nicht ausführen (als Ergebnis dieses Selects ist immer nur eine Zeile möglich). Geht das mit Union oder muss ich die ganze Abfrage umbauen?

Danke für eure Infos.
Gruß Joni
Mitglied: filippg
19.12.2011 um 00:58 Uhr
Hallo,

hm... verstehe ich nicht. Wenn du in der Dritten Abfrage ein WHERE spalte IS NOT NULL hast, sollte diese diese Abfrage keine Zeile zurückliefern, was also den Effekt hätte, als würde das letzte Select nicht ausgeführt (was ja das ist, was du wolltest).

Gruß

Filipp
Bitte warten ..
Mitglied: nxclass
19.12.2011 um 09:43 Uhr
kann man da nicht einfach ein:
01.
SELECT x.* FROM ( 
02.
/* UNION */ 
03.
) x 
04.
WHERE x.`dasWichtigeFeld` IS NOT NULL
herum bauen !?

EDIT oder gleich
01.
/*Select 1 */ 
02.
UNION 
03.
/*Select 2 */ 
04.
UNION 
05.
/*Select 3 */ WHERE `dasWichtigeFeld` IS NOT NULL
Bitte warten ..
Mitglied: Biber
19.12.2011 um 09:55 Uhr
Moin nxclass,


das ist aber inhaltlich etwas anderes als
01.
SELECT x.* FROM ( 
02.
     SELECT sülz, di, bülz as dasWichtigeFeld  FROM tabelle1 
03.
         UNION  
04.
    SELECT la, le, lu FROM tabelle2 
05.
         UNION  
06.
   SELECT gib, mir, fuenf  FROM tabelle3 
07.
 WHERE fuenf IS NOT NULL 
08.
) x 
09.
;
[Edit] Hat sich mit nxclass' Edit erledigt -- Kommentar gegenstandslos .. [/Edit]

Grüße
Biber
Bitte warten ..
Mitglied: nxclass
19.12.2011 um 11:05 Uhr
das ist aber inhaltlich etwas anderes als
doch im 3. Select ist es möglich, dass ein NULL zurückgeliefert wird (nur in einer bestimmten, nämlich der relvanten, Spalte)
das stimmt - ich bin allerdings davon ausgegangen, dass in den 2 anderen SELECT's dieses Feld sicher nicht NULL ist
Bitte warten ..
Mitglied: joni2000de
19.12.2011 um 12:44 Uhr
Hab doch gewusst, dass da irgendwo eine Leitung war. War wohl schon zu spät.

Danke an alle!
Gruß Joni
Bitte warten ..
Ähnliche Inhalte
Windows Server
Upgrade von MSSQL Server 2008 R2 auf MSSQL Server 2012 schlägt fehl (4)

Frage von Argoadmin zum Thema Windows Server ...

Batch & Shell
gelöst Powershell select-string -pattern (2)

Frage von LianenSchwinger zum Thema Batch & Shell ...

Windows Server
MSSQL Arbeitsspeicher Auslastung (6)

Frage von Jabberwocky86 zum Thema Windows Server ...

Windows Server
MSSQL Hotfix in Spiegelumgebung

Frage von petere zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (33)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (21)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...