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

SQL 2005 - IF (Select gleich leer)

Frage Entwicklung Datenbanken

Mitglied: Fred666

Fred666 (Level 1) - Jetzt verbinden

18.07.2011 um 15:32 Uhr, 4004 Aufrufe, 6 Kommentare

Hi,

eine kleine Frage:

wie fange ich am einfachsten eine Selcect anweisung ab, die nichts findet?!?

also so in der Art:

IF (IS NULL(SELECT ...))
Begin
....
END


grüße Fred
Mitglied: it-frosch
18.07.2011 um 15:45 Uhr
Hallo Fred,

vielleicht ein count(*) auswerten?
Wenn das 0 ist dann gab es auch keine Datensätze.

Genauere Antworten kann man dir geben wenn du etwas mehr den Zusammenhang beschreibst.

grüße vom it-frosch
Bitte warten ..
Mitglied: Fred666
18.07.2011 um 16:01 Uhr
Hi,

okey mein Fehler...
also ich habe eine SELECT-Anweisung, welche mir aus verschiedenen Tabellen Spalten auswählt, und manche noch verrechnet etc. Es gibt auch eine Spalte: Freie_Räume
Als WHERE Bedingung habe ich @datum < '2011-06-27 11:00:00'

So nun will ich wissen ob er was gefunden hat.
Wenn ja, dann rechnet er was aus und fügt es in die Spalte 'Freie_Räume' ein. Wenn nicht, dann soll er die maximal zulässige Anzahl an Räumen in diese Spalte einfügen.

Meine Frage war deshalb kann ich die SELECT-Anweisung irgendwie mit einer IF (IS NULL...) oder ähnlichem abfragen?!?

Grüße Fred
Bitte warten ..
Mitglied: it-frosch
18.07.2011 um 16:22 Uhr
Hallo Fred,

mit dem Select Befehl kannst du m.E. kein Verzweigungen bauen. Das geht nur in einer Stored Procedure.
Soll das ein Report werden oder willst du nur Daten sammeln die du dann in Excel schüttest?
Nutzt du einen Reportgenerator? Wenn ja dann müsstest du das in dem abfangen.

Du könntest für die Spalte auch select count(*) from raeume where raumnummer not in (select raumnummer from raumtermine where termin<="30.07.2011")
nehmen und die entstehende 0 bzw NULL umsetzen.


grüße vom it-frosch
Bitte warten ..
Mitglied: Fred666
18.07.2011 um 17:05 Uhr
Hallo it-frosch,

also im Prinzip will ich keine select anweisung verzweigen, sondern lediglich feststellen ob er was gefunden hat. Ich habe es mit Count <>0 versucht und es klappt einwandfrei.

Meine Frage noch: Wenn er was gefunden hat dann soll er mir das in eine neue Temp Tabelle legen. Weisst du vll wie ich eine mit Select ersetllte Tabelle in eine Temp-Tabelle kopiere?!
Der Grund ist der, dass ich anhand von dieser TEmpTabelle dann eine weitere Tabelle fülle die abhängt von anderen Tabellen.

EDIT: ich hätte das jetzt über eine Cursor gelöst der geladen wird mit der Select-Anweisung und in einer While Schleife das nach und nach in die TempTabelle kopiert. Geht das aber auch einfacher???

EDIT 2: bzw. wenn ich das über cursor mache, kann ich mir die count-Abfrage spraren und eher eine Abfrage wie: IF @@FETCH_STATUS <> 0 bezogen auf den Cursor generieren oder ist das totaler Anfänger-Blödsinn von mir?!

Grüße und danke Fred!
Bitte warten ..
Mitglied: MadMax
18.07.2011 um 21:59 Uhr
Nabend Fred,

zum ersten Teil:
select ... into #TempTab from ...

zum zweiten Teil:
Ja, das mit dem count könntest Du Dir sparen, wenn Du das Problem mit einem Cursor löst, weil der Cursor dann nämlich leer wäre. Cursor würde ich aber nur dann verwenden, wenn es sich nicht vermeiden läßt. Ein einziger Befehl ist nämlich deutlich schneller als eine Schleife mit x inserts.

Gruß, Mad Max
Bitte warten ..
Mitglied: Fred666
20.07.2011 um 10:06 Uhr
So HI,

danke für eure Mühen, habe das Problem gelösts bekommen ( mit dem Count (*) <>0)
Scheint wohl bei einer Select-Anweisung der einfachste Weg zu sein!

Grüße Fred
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Datenbanken
Mit sql eine Zeile einfügen, select und feste Werte (9)

Frage von helmuthelmut2000 zum Thema Datenbanken ...

Windows Server
gelöst Update von sql server express 2005 sp4 auf 2008 klappt nicht (11)

Frage von jhaustein zum Thema Windows Server ...

Datenbanken
gelöst IF Abfrage im SELECT Oracle SQL (2)

Frage von Roadrunner777 zum Thema Datenbanken ...

Datenbanken
gelöst Select column by id ORALCE SQL (2)

Frage von Roadrunner777 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (10)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...