Like - operator % na końcu

Like - operator % na końcu
N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 647
0

Mam taki skrypt:

Kopiuj
insert into Persons values (20, 'Mark', 'mark@gmail.com', 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".

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

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

N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 647
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?

a_s_f
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
1

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

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
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

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
1

Zobacz co tam binarnie siedzi:

Kopiuj
SELECT CONVERT(VARBINARY(MAX), NAME),name FROM Persons WHERE [Name] = 'Mark'
N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 647
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. ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.