AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage mit Null Werten
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Abfrage mit Null Werten

Ein Thema von renekr · begonnen am 23. Feb 2010 · letzter Beitrag vom 23. Feb 2010
Antwort Antwort
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#1

SQL Abfrage mit Null Werten

  Alt 23. Feb 2010, 12:23
Datenbank: SQL • Version: 2008 • Zugriff über: ADO
Hallo,

Ich habe ein kleines Problem das ich mittels einer SQL Abfrage gerne beheben möchte.
Ich benötige das Ergebniss in 1 SQL Statement.

Ich habe eine Tabelle wo ich die Spalte "Sprache" abfrage in der Where Klausel.
Aber nun kann es sein das für den Datensatz keine Sprache definiert wurde (also kein Ergebniss) aber dafür in der Spalte Default_Language bei einer anderen Sprache was hinterlegt ist.
Dann möchte ich die Datensätze bekommen wenn die Sprache keine Werte zurück gibt das er dann die Datensätze zurück gibt wo die Default_Language auf True ist.

Also
Select * from Test where Spalte a='Testand activ=1 and lang='Deutsch' Nun soll er natürlich erst prüfen ob der Datensatz vorhanden ist dann die Abfrage machen
Select * from Test where Spalte a='Testand activ=1 and Default_Language=1 Allerdings in 1 SQL Statement drin.
Habe schon mit IsNull,case usw rumgespielt aber habs nicht hinbekommen.
Mit IsNull kann man ja in der Abfrage einfach andere Werte oder eine andere Spalte hinterlegen, aber ich wil lja nicht nur 1 Spalte neu,sondern den ganzen Datensatz.

Ist das überhaupt möglich so ?

Vielen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: SQL Abfrage mit Null Werten

  Alt 23. Feb 2010, 12:43
Hallo,

vielleicht habe ich dich falsch verstanden. Du meinst nicht zufällig das hier?

SQL-Code:
SELECT * FROM Test
WHERE Spalte = 'Test'
   AND active = 1
   AND (lang = 'DeutschOR Default_Language = 1)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
 
Delphi 12 Athens
 
#3

Re: SQL Abfrage mit Null Werten

  Alt 23. Feb 2010, 12:54
Wenn wirklich nur ein Datensatz zurückkommen darf z.B. so:
SQL-Code:
Select * from Test where (Spalte a='Test') and (activ=1) and
  ((lang='Deutsch') or
   ((Default_Language=1) and
    ((Select count(id) from Test where (Spalte a='Test') and (activ=1) and (lang='Deutsch')) = 0)))
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: SQL Abfrage mit Null Werten

  Alt 23. Feb 2010, 13:08
sowas sollte man doch über eine SP lösen
Code:
sf_translate( 'Test', 'Deutsch' )
liefert dann die Übersetzung zurück

Dann kann man diese Funktion in allen Abfragen schön einbauen.
Vor allem kann man damit auch darauf reagieren, wenn weder 'Deutsch' noch Default_Language einen Datensatz liefert.
Man gibt einfach den String 'Test' zurück.

Der SQL-Server sollte dieses auch performant umsetzen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: SQL Abfrage mit Null Werten

  Alt 23. Feb 2010, 13:26
Hi Blup,

Vielen Dank.
Es kann doch so einfach sein
Aber wenn man nicht drauf kommt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz