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, 3922 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 ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Linux
Rdesktop Linux Benutzername leer lassen (3)

Frage von opc123 zum Thema Linux ...

Monitoring
gelöst Zabbix: wenn Verzeichnis fehlt oder leer ist, dann Trigger (5)

Frage von honeybee zum Thema Monitoring ...

Windows Server
Upgrade von MSSQL Server 2008 R2 auf MSSQL Server 2012 schlägt fehl (4)

Frage von Argoadmin zum Thema Windows Server ...

Windows Server
MSSQL Hotfix in Spiegelumgebung

Frage von petere zum Thema Windows Server ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (20)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...