Я не могу понять, почему сравнение не удается в этом примере кода:
create table #a(a nvarchar(10))
insert #a values( 1 )
insert #a values( 2 )
insert #a values( 3 )
insert #a values('A')
select * from (select * from #a where a not like 'A%') b where a < 2
drop table #a
Я понимаю, что это не с включенным альфа-значением, так как преобразование в int не удается, но почему это все ещепытаясь преобразовать четвертую строку, когда я явно исключаю ее из набора строк-кандидатов b?Если я разделю это на две части, написав b в виде таблицы, все будет в порядке.То есть это:
create table #a(a nvarchar(10))
insert #a values( 1 )
insert #a values( 2 )
insert #a values( 3 )
insert #a values('A')
select * into #b from (select * from #a where a not like 'A%') b
select * from #b where a < 2
drop table #a
drop table #b
... работает.Что мне не хватает?Это Azure SQL.