J'ai une question que je pense devrait ressembler à ceci:clause WHERE requis comme lorsque Equals devrait fonctionner
select *
from Requesters
where CITIZEN_STATUS = 'OS-IE ';
Le CITIZEN_STATUS sur le terrain, dont le type de données est varchar (15), a un espace de fin pour ce particulier valeur. Je l'ai collé dans Notepad ++ et je l'ai regardé avec un éditeur hexadécimal, et l'espace final est en effet 0x20.
Pour la requête au travail, je dois l'écrire comme ceci:
select *
from Requesters
where CITIZEN_STATUS like 'OS-IE%';
Alors, évidemment, j'ai une solution de contournement et la question n'est pas urgente. Mais j'aimerais vraiment savoir pourquoi la première requête échoue à faire ce que j'attends. Quelqu'un a-t-il une idée?
Je devrais mentionner que j'utilise SQL Server 2005 et peut fournir plus d'informations sur la configuration si nécessaire.
Voulez-vous savoir comment préserver l'espace de fin de comparaison? Ou comment le supprimer? Ce n'est pas clair. Et quel type de données est CITIZEN_STATUS? – gbn
C'est plus une question théorique. Je veux savoir pourquoi je ne peux pas utiliser le signe égal et mettre exactement ce qui est dans le champ, plutôt que d'avoir à utiliser LIKE avec un caractère générique. Merci! – user434462