J'utilise SQL Server 2005. J'ai une table avec une colonne de texte et j'ai de nombreuses lignes dans la table où la valeur de cette colonne n'est pas nulle, mais elle est vide. Essayer de comparer avec '' donne cette réponse:
Les types de données text et varchar sont incompatibles dans l'opérateur différent de.
Existe-t-il une fonction spéciale pour déterminer si la valeur d'une colonne de texte n'est pas nulle mais vide?
Réponses:
la source
OR mytextfield IS NULL
quand votre colonne peut êtreNULL
mytextfield IS NULL *OR*
:-)la source
En fait, il vous suffit d'utiliser l'opérateur LIKE.
la source
Pour obtenir uniquement des valeurs vides (et non des valeurs nulles):
Pour obtenir à la fois des valeurs nulles et vides:
Pour obtenir uniquement des valeurs nulles:
Pour obtenir des valeurs autres que nulles et vides:
Et n'oubliez pas de n'utiliser des phrases LIKE que lorsque cela est nécessaire, car elles dégraderont les performances par rapport à d'autres types de recherche.
la source
myColumn IS NOT NULL AND my column = '';
?Utilisez l'opérateur IS NULL:
la source
la source
SQL SELECT * FROM TABLE WHERE IFNULL(FIELD, '')=''
Je sais que cet article est ancien mais je l'ai trouvé utile.
Cela n'a pas résolu mon problème de retour de l'enregistrement avec un champ de texte non vide, j'ai donc pensé ajouter ma solution.
C'est la clause where qui a fonctionné pour moi.
la source
Utilisez la méthode DATALENGTH , par exemple:
la source
Je testerais contre SUBSTRING (textColumn, 0, 1)
la source
Est-ce que null et une chaîne vide sont équivalentes? S'ils le sont, j'inclurais une logique dans mon application (ou peut-être un déclencheur si l'application est "prête à l'emploi"?) Pour forcer le champ à être nul ou '', mais pas l'autre. Si vous avez choisi «», vous pouvez également définir la colonne sur NOT NULL. Juste une chose de propreté des données.
la source
Je voulais avoir un texte prédéfini ("Aucun laboratoire disponible") à afficher si la valeur était nulle ou vide et mon ami m'a aidé avec ceci:
la source
Vous devez faire les deux:
SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''
la source
Je sais qu'il y a beaucoup de réponses avec des alternatives à ce problème, mais je voudrais simplement rassembler ce que j'ai trouvé comme la meilleure solution par @Eric Z Beard & @Tim Cooper avec @Enrique Garcia & @Uli Köhler.
Si nécessaire, pour gérer le fait que l'espace uniquement peut être identique à vide dans votre scénario d'utilisation, car la requête ci-dessous renverra 1, pas 0.
Par conséquent, j'irais pour quelque chose comme:
la source
essaye ça:
j'espère vous aider!
la source
Au lieu d'utiliser
isnull
use acase
, en raison des performances, c'est mieux le cas.Dans votre problème, vous devez faire ceci:
Code comme celui-ci:
la source
la source