Lepsik
Дата: 16.10.2003 12:12:43
есть строковое поле с размером картинки varchar(20)
с содержимым типа '200x300'
и есть поле orientation smallint куда запросами надо положить 1, 2, 4 в зависимости от ориентации картинки
запросы типа
UPDATE picture SET orientation=4 WHERE psize IS NOT NULL AND CHARINDEX('x', psize) > 0 AND (CONVERT(decimal(5,0), RIGHT(psize, LEN(psize)-CHARINDEX('x', psize))) > CONVERT(decimal(5,0), LEFT(psize, CHARINDEX('x', psize)-1)))
с < или > работают четко, в вот там где я пытаюсь сравнить одинаковые ли стороны у картинки - выдает
Server: Msg 8114, Level 16, State 5, Line 3
Error converting data type nvarchar to numeric.
хотя SELECT psize FROM picture WHERE psize IS NOT NULL AND CHARINDEX('x', psize) > 0 AND (CONVERT(decimal(5,0), RIGHT(psize, LEN(psize)-CHARINDEX('x', psize))) = CONVERT(decimal(5,0), LEFT(psize, CHARINDEX('x', psize)-1)))
работает без ошибок . :((
вот засада. в чеm отличие UPDATE от SELECT в таком случае ?
Lepsik
Дата: 17.10.2003 17:20:17
--Кстати - убедитесь, что у вас там где-нибудь буква 'O' (char(79)) вместо '0' (char(48))
я же ясно написал, что условие в WHERE работает правильно но только в SELECT.
А в UPDATE выдает ошибку