Сначала ищите записи с ' '
:
CHARINDEX(' ', [AddrZip]) > 0
Затем ищите записи с '1/2'
, встречающимся после ' '
CHARINDEX('1/2', [AddrZip], CHARINDEX(' ', [AddrZip])) > 0
SELECT *
FROM ( SELECT *
FROM [Addresses]
WHERE CHARINDEX(' ', [AddrZip]) > 0
) x
WHERE CHARINDEX('1/2', [x].[AddrZip], CHARINDEX(' ', [AddrZip])) > 0
Эта «упрощенная» версия может работает:
SELECT *
FROM [Addresses]
WHERE CHARINDEX(' ', [AddrZip]) > 0
AND CHARINDEX('1/2', [x].[AddrZip], CHARINDEX(' ', [AddrZip])) > 0
Если вы хотите найти вхождения '1/2'
, которым непосредственно предшествует с ' '
, где ' '
является самым первым пробелом в строке, используйте следующий код:
SELECT *
FROM [Addresses]
WHERE CHARINDEX(' ', [AddrZip]) > 0
AND CHARINDEX(' ', [AddrZip]) = CHARINDEX(' 1/2', [x].[AddrZip])
Избегайте LIKE
операторов, если это вообще возможно. Они общеизвестно медленные.