Korzystam z programu SQL Server 2005. Mam tabelę z kolumną tekstową i mam wiele wierszy w tabeli, w których wartość tej kolumny nie jest pusta, ale jest pusta. Próba porównania z „” daje następującą odpowiedź:
Typy danych text i varchar są niekompatybilne, ponieważ nie są równe operatorowi.
Czy istnieje specjalna funkcja określająca, czy wartość kolumny tekstowej nie jest pusta, ale pusta?
Odpowiedzi:
źródło
OR mytextfield IS NULL
kiedy kolumna może byćNULL
mytextfield IS NULL *OR*
:-)źródło
W rzeczywistości wystarczy użyć operatora LIKE.
źródło
Aby uzyskać tylko puste wartości (a nie wartości zerowe):
Aby uzyskać wartości puste i puste:
Aby uzyskać tylko wartości zerowe:
Aby uzyskać wartości inne niż null i puste:
I pamiętaj, aby używać wyrażeń typu LIKE tylko wtedy, gdy jest to konieczne, ponieważ obniżą one wydajność w porównaniu do innych typów wyszukiwań.
źródło
myColumn IS NOT NULL AND my column = '';
?Użyj operatora IS NULL:
źródło
źródło
SQL SELECT * FROM TABLE WHERE IFNULL(FIELD, '')=''
Wiem, że ten post jest starożytny, ale uznałem go za przydatny.
Nie rozwiązało to problemu zwrócenia rekordu z niepustym polem tekstowym, więc pomyślałem, że dodam moje rozwiązanie.
To jest klauzula where, która zadziałała dla mnie.
źródło
Użyj metody DATALENGTH , na przykład:
źródło
Testowałbym względem SUBSTRING (textColumn, 0, 1)
źródło
Czy wartość null i pusty ciąg są równoważne? Jeśli tak, włączę logikę do mojej aplikacji (a może wyzwalacza, jeśli aplikacja jest „gotowa”?), Aby wymusić, aby pole było zerowe lub „”, ale nie drugie. Jeśli użyłeś '', możesz również ustawić kolumnę na NIE NULL. Tylko kwestia czystości danych.
źródło
Chciałem mieć predefiniowany tekst („Brak dostępnych laboratoriów”), który będzie wyświetlany, jeśli wartość będzie pusta lub pusta, a mój przyjaciel pomógł mi w tym:
źródło
Musisz wykonać oba:
SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''
źródło
Wiem, że istnieje wiele odpowiedzi z alternatywami dla tego problemu, ale chciałbym tylko połączyć to, co uznałem za najlepsze rozwiązanie przez @Eric Z Beard i @Tim Cooper z @Enrique Garcia i @Uli Köhler.
W razie potrzeby, aby poradzić sobie z faktem, że tylko miejsce może być takie samo jak puste w twoim scenariuszu przypadku użycia, ponieważ poniższe zapytanie zwróci 1, a nie 0.
Dlatego wybrałbym coś takiego:
źródło
Spróbuj tego:
mam nadzieję, że ci pomogę!
źródło
Zamiast używać
isnull
use acase
, ze względu na wydajność lepiej jest to zrobić.W swoim problemie musisz to zrobić:
Kod taki jak ten:
źródło
źródło