Ich dachte, wenn ich Leerzeichen in der Spalte1 habe, baue ich xml, wird dann einfach leerzeichen in dem Programm hochgeladen und gut ist. Tatsächlich ist so, wenn ich Leerzeichen habe, oder nichts habe, ist das in xml als Tag angezeigt und kann ich die xml zu meinem Programm nicht hochladen, da das Programm sagt mir, dass die spalte1 ausgefüllt sein soll. Deshalb suche ich eine Lösung, wo: wenn in spalate1 kein Wert vorhanden, ist null, etc , dann bitte nicht als Element in XML darstellen.LauraM schrieb:Hi, ich habe das so gemacht
Code:UPDATE tab1 SET spalte1='' WHERE spalte1 ='null'
Allerdings wnn ich jetzt xml aufbaue, dann die Tagselemente sind trotzdem gezeigt, allerdings ohne Inhalt.
Wie kann ich die Tagselemnte, die kein Inhalt haben- nicht anzeigen lassen?
Ich habe Leerzeichen in die leere Felder eingetragen, aber es funktioniert nicht. Die leere Elemente werden trotzdem erzeugt.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
NULL erstezen
- Ersteller LauraM
- Erstellt am
Raijin
Fleet Admiral
- Registriert
- Nov. 2007
- Beiträge
- 18.285
Da du immer noch nicht mit der Sprache rausrückst, was genau du nun damit vorhast, welches Programm das ist, und so weiter, bin ich an dieser Stelle raus. Es ist zwecklos, dir zu helfen.LauraM schrieb:ist das in xml als Tag angezeigt und kann ich die xml zu meinem Programm nicht hochladen
Du gibst keinerlei Informationen preis, antwortest nicht auf Fragen und erstellst einen Thread nach dem anderen, weil du dich nur von Problem zu Problem hangelst, ohne darauf einzugehen, dass dir schon von vielen Leuten nahegelegt wurde, dein Projekt grundlegend zu überdenken - oder es zumindest einigermaßen vollständig zu beschreiben, in einem Thread, mit reallistischen Beispieldaten und vor allem mit der Info welche Programme noch beteiligt sind, damit man dir zielgerichtet beim Konzept helfen kann und dich nicht aus einer Sackgasse nach der nächsten lotsen muss....
Wie oben erwähnt kannst du notfalls den XML-Export durch einen Texteditor deiner Wahl laufen lassen und die leeren Tags einfach suchen und ersetzen. Das hilft dir dann vermutlich nur 10 Minuten weiter bis du vor dem nächsten Problem stehst.
Das ist in einer Programmiersprache binnen Sekunden gelöst, weil eine Programmiersprache dafür konzipiert wurde "Wenn X, dann Y" zu verarbeiten. Eine Datenbank bzw. SQL ist keine Programmiersprache. Dementsprechend limitiert sind dort die Möglichkeiten, weil eine Datenbank Daten speichert und abruft, aber nicht verarbeitet.LauraM schrieb:Deshalb suche ich eine Lösung, wo: wenn in spalate1 kein Wert vorhanden, ist null, etc , dann bitte nicht als Element in XML darstellen.
Ich versuche mich deutlich auszusprechen:
In diesem Fall:
Nun als Ergebnis möchte ich die leere Elemente nicht haben. Das muss möglich sein irgendwie in meine Abfrage zu interpretieren, oder?
Ich kann mir vorstellen, dass untser spalte1 as 'v1:titel' muss Bedingung stehen, wie: if ist leer, dann ignoriere und geh weiter'
In diesem Fall:
- wenn ein Feld leer ist, (keine Werte vorhanden), dann ignoriere und geh weiter (also wird in diesem Moment kein Element entstehen)
- wenn ein Feld befüllt ist, übernehme den Wert und erstelle einen enstprechenden Element dazu.
Code:
WITH XMLNAMESPACES (
'temp.firma' as commons,
'zeitung' as v1)
select
spalte1 as 'v1:titel',
spalte2 as 'v1:code',
spalte3 as 'v1:author'
from tab1
FOR XML PATH('temp:zeitung'), ROOT('temp:zeitungen')
Nun als Ergebnis möchte ich die leere Elemente nicht haben. Das muss möglich sein irgendwie in meine Abfrage zu interpretieren, oder?
Ich kann mir vorstellen, dass untser spalte1 as 'v1:titel' muss Bedingung stehen, wie: if ist leer, dann ignoriere und geh weiter'
Zuletzt bearbeitet:
G-Red
Commander
- Registriert
- Jan. 2016
- Beiträge
- 2.405
Wenn wir von reinem SQL sprechen würden, wäre ich bei dir. Im Fall von TE, der/die auf MS SQL setzt, ist mit T-SQL auch das Arbeiten mit den IF, THEN, ELSE etc. Konstrukten möglich.Raijin schrieb:Eine Datenbank bzw. SQL ist keine Programmiersprache. Dementsprechend limitiert sind dort die Möglichkeiten, weil eine Datenbank Daten speichert und abruft, aber nicht verarbeitet.
Wie du aber schon angemerkt hast, ist dem TE nicht zu helfen, ohne näheres zu wissen.
Ergänzung ()
Könntest du mir sagen, wie ich das eventuell formulieren kann, bitte?G-Red schrieb:Wenn wir von reinem SQL sprechen würden, wäre ich bei dir. Im Fall von TE, der/die auf MS SQL setzt, ist mit T-SQL auch das Arbeiten mit den IF, THEN, ELSE etc. Konstrukten möglich.
Wie du aber schon angemerkt hast, ist dem TE nicht zu helfen, ohne näheres zu wissen.
Es geht um 2 Spalten und wollte ich so formulieren:
Code:
spalte2 as 'v1:code',
(case spalte2 ='', then .....und hier weiss ich nicht wie ich formulieren soll (wenn spalte2 ist leer, dann schreibe keinen Element in xml)
spalte3 as 'v1:author'
(case spalte3='', then .....und hier weiss ich nicht wie ich formulieren soll (wenn spalte3 ist leer, dann schreibe keinen Element in xml)
Zuletzt bearbeitet:
Hallo, ich habe zu dieser Funktion folgendes gefunden:Darlis schrieb:Das das ganze Element ignoriert werden soll ist was ganz anderes als das bisherige "NULL ersetzen". Guck mal nach der Option ABSENT.
absent on null soll man in der XML Abfrage integrieren, leider kriege ich Fehler:
Code:
WITH XMLNAMESPACES (
'temp.firma' as commons,
'zeitung' as v1)
select
spalte1 as 'v1:titel',
spalte2 as 'v1:code',
spalte3 as 'v1:author'
absent on null
from tab1
FOR XML PATH('temp:zeitung'), ROOT('temp:zeitungen')
Falsche Syntax in der Nähe von "absent".
Ich habe die Funktion am Ende gemacht:Darlis schrieb:Das das ganze Element ignoriert werden soll ist was ganz anderes als das bisherige "NULL ersetzen". Guck mal nach der Option ABSENT.
FOR XML PATH('temp:zeitung'), ROOT('temp:zeitungen'), elements absents.
ich habe keinen fehler bekommen , aber auch sind die "leere" Elemente geblieben.
Ergänzung ()
Warum bin ich Fehler? warum nennst du mich sso? weil du besser weißt. Es kann gut sein, aber kann man doch anderen behiflich sein.schmedd9r schrieb:Ich denke eher du bist der Fehler....
Nein wir sind dir die ganze Zeit behilflich. Du machst massig Threads auf und stellst immer nur eine Frage zu einer Funktion.
Das ganze geht jetzt schon über Wochen.... Ganz zu schweigen, dass es gut möglich sein könnte, dass dein Arbeitgeber dich fristlos kündigt, wenn er erfährt was du machst. Können wir aber nicht wirklich beurteilen weil ja immer neue Fragen und Probleme von dir keine relevanten Informationen zum Projekt kommen.
Das ganze geht jetzt schon über Wochen.... Ganz zu schweigen, dass es gut möglich sein könnte, dass dein Arbeitgeber dich fristlos kündigt, wenn er erfährt was du machst. Können wir aber nicht wirklich beurteilen weil ja immer neue Fragen und Probleme von dir keine relevanten Informationen zum Projekt kommen.
Das ist weil bei dir nicht mehr NULL steht sondern 'null'. Wie gesagt, das sind zwei ganz verschiedene Sachen. Jetzt müsstest du dein Update wieder rückgängig machen damit es (wahrscheinlich) funktioniertLauraM schrieb:ich habe keinen fehler bekommen , aber auch sind die "leere" Elemente geblieben.
Dankeschön, ich habe das mit der Tip von Darlis gelöst!Oelepoeto schrieb:Das ist weil bei dir nicht mehr NULL steht sondern 'null'. Wie gesagt, das sind zwei ganz verschiedene Sachen. Jetzt müsstest du dein Update wieder rückgängig machen damit es (wahrscheinlich) funktioniert
Die Option Absent hat es funktioniert.
Vielen Dank!
Einfach mal die finale Lösung ist wohle keine Option? Naja, wozu auch, bei dem Thread hier fehlt ja im Prinzip auch der komplette Anfang. Aber es könnte ja trotzdem einer auf die Idee kommen mit einem ähnlichen Problem die Suchfunktion zu benutzen. So funktioniert das teilen von Wissen im Netz, sieh dir mal SO als Parade-Beispiel an.
Viele Erfolg trotzdem weiterhin
Viele Erfolg trotzdem weiterhin
Raijin
Fleet Admiral
- Registriert
- Nov. 2007
- Beiträge
- 18.285
Keine Ahnung warum die Mods nu gerade meinen letzten Beitrag moderiert haben. Ich vermute stark, dass derjenige Mod sich nicht mit der Gesamtheit der Threads vertraut gemacht hat.
Es geht hier um über 1 Million Datensätze, die mindestens Telefonnummern und Adressen umfassen. Wer da noch an ein private Nutzung im Sinne einer Mitgliederliste für den Schützenverein glaubt, sollte vielleicht nochmal darüber nachdenken. Wenn sich solche Daten in Händen befinden, die ganz offensichtlich nicht damit umgehen können, ist das grob fahrlässig.
Es geht hier um über 1 Million Datensätze, die mindestens Telefonnummern und Adressen umfassen. Wer da noch an ein private Nutzung im Sinne einer Mitgliederliste für den Schützenverein glaubt, sollte vielleicht nochmal darüber nachdenken. Wenn sich solche Daten in Händen befinden, die ganz offensichtlich nicht damit umgehen können, ist das grob fahrlässig.
ich glaube aber eher nicht dass das irgendwo produktiv eingesetzt werden soll. Dann würde man ja eher jemanden mit SQL Kenntnissen ransetzen, hier klang das ja eher nach einem ungelernten ITler der mal versucht ETL oder was auch immer zu machen. Ich muss zugeben, ich hab bis heute noch nicht das große ganze verstanden, also das Ziel des ganzen Projektes. Ich habe zwar mehrmals drum gebeten, aber wurde gekonnt ignoriert. Dabei fängt dabei dir BEratung eigentlich an, man hätte sicherlich andere Wege und Werkzeuge empfehlen können.
Ähnliche Themen
- Antworten
- 11
- Aufrufe
- 759
- Antworten
- 4
- Aufrufe
- 953
- Antworten
- 9
- Aufrufe
- 766
- Antworten
- 46
- Aufrufe
- 4.951
- Antworten
- 39
- Aufrufe
- 5.070