Like - operator % na końcu

0

Mam taki skrypt:

insert into Persons values (20, 'Mark', '[email protected]', 2, 30)
select * from Persons where [Name] = 'Mark'
select * from Persons where [Name] like 'Mark'

Pierwszy select zwraca jeden rekord, drugi nie zwraca żadnego. Zadziała, jeśli w drugim selekcie dodam znak % na końcu. Ale dlaczego? O ile wiem, to % oznacza "są jakieś znaki lub nie ma wcale".

0

Jesteś pewien, że w Twojej tabeli name jest drugą kolumną, a nie trzecią?

0

Jest drugą - pierwsza to Id. Wiem, że to dziwne, po prostu trochę się bawię SQLem. Może ma ktoś u siebie zainstalowany SQL Server i mógłby sprawdzić, jak to wygląda u niego?

1

Sprawdź czy za słowem Mark nie kryją się jeszcze inne, niewidoczne znaki

5

pola char(N) mają subtelne różnice w porownaniu do varchar(N),i spacje końcowe są jedną zróznic.
Zalezy od definicji tabeli

1

Zobacz co tam binarnie siedzi:

SELECT CONVERT(VARBINARY(MAX), NAME),name FROM Persons WHERE [Name] = 'Mark'
0

Ok, sprawdziłem, tak jak napisał @yarel, i okazało się, że na końcu siedzi sporo spacji, bo typ kolumny to nchar. Chyba @AnyKtokolwiek chyba od razu wiedział, gdzie jest problem. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0