sql-server - titel - title tag länge




Wie überprüfe ich, ob eine SQL Server-Textspalte leer ist? (10)

Ich benutze SQL Server 2005. Ich habe eine Tabelle mit einer Textspalte und ich habe viele Zeilen in der Tabelle, wo der Wert dieser Spalte nicht null ist, aber es ist leer. Der Vergleich mit "" ergibt diese Antwort:

Die Datentypen text und varchar sind in dem ungleich Operator nicht kompatibel.

Gibt es eine spezielle Funktion, um festzustellen, ob der Wert einer Textspalte nicht null sondern leer ist?


Du könntest es tun

SELECT * FROM TABLE WHERE FIELDNAME=''

Eigentlich müssen Sie nur den LIKE-Operator verwenden.

SELECT * FROM mytable WHERE mytextfield LIKE ''

Ich weiß, dass dieser Beitrag alt ist, aber ich fand ihn nützlich.

Mein Problem, den Datensatz mit einem nicht leeren Textfeld zurückzusenden, konnte nicht gelöst werden. Daher dachte ich, ich würde meine Lösung hinzufügen.

Dies ist die Where-Klausel, die für mich funktioniert hat.

WHERE xyz LIKE CAST('% %' as text)

Ich weiß, es gibt viele Antworten mit Alternativen zu diesem Problem, aber ich möchte nur zusammenfassen, was ich als die beste Lösung von @Eric Z Beard & @Tim Cooper mit @Enrique Garcia & @Uli Köhler gefunden habe.

Falls erforderlich, um zu berücksichtigen, dass Space-Only in Ihrem Anwendungsfall-Szenario leer sein kann, da die folgende Abfrage 1, nicht 0, zurückgibt.

SELECT datalength(' ')

Daher würde ich mich für etwas wie:

SELECT datalength(RTRIM(LTRIM(ISNULL([TextColumn], ''))))

Sie müssen beides tun:

SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''


Sind null und eine leere Zeichenkette äquivalent? Wenn dies der Fall ist, würde ich Logik in meine Anwendung einbeziehen (oder einen Auslöser, wenn die App "out-of-the-box" ist), um das Feld entweder auf null oder auf "" zu setzen, aber nicht auf das andere. Wenn du mit '' gehst, kannst du die Spalte auch auf NOT NULL setzen. Nur eine Daten-Sauberkeit Sache.


Verwenden Sie den Operator IS NULL:

Select * from tb_Employee where ename is null

Verwenden Sie die DATALENGTH Methode, zum Beispiel:

SELECT length = DATALENGTH(myField)
FROM myTABLE

SELECT * FROM TABLE
WHERE ISNULL(FIELD, '')=''

where datalength(mytextfield)=0




emptydatatext