У меня есть 3 условия здесь.
- Для чтения только 9 символов LotNo (может содержать до 10 символов)
- Пропускать точку, если последний (9-й) символ - точка (.)
- Но некоторые LotNo имеют менее 9 символов, и нам нужно удалить точку, если последний символ (.)
Я использую оператор If в хранимой процедуре.Я использовал Substring, чтобы получить первые 9 символов.Результат выглядит хорошо для первых двух условий, но он не работает для третьего условия.
DECLARE @ShortWaferLotNo VARCHAR(50)
set @ShortWaferLotNo = SUBSTRING(@WaferLotNo, 0, 10);
if RIGHT(@ShortWaferLotNo, 1) = '.'
begin
set @ShortWaferLotNo = SUBSTRING(@WaferLotNo, 0, 9);
end
else if RIGHT(@ShortWaferLotNo, 1) = '.'
begin
set @ShortWaferLotNo = STUFF(@WaferLotNo,DATALENGTH(@WaferLotNo), 1, '')
end
else
begin
set @ShortWaferLotNo=''
end
PPLT2.01.BBB (WaferLotNo) -> PPLT2.01 (чтение только 1-го символа 9 и отсутствие точки)если 9-й символ - точка.
PQ1H3.1. ----> PQ1H3.1 (пропустить последнюю точку)
PQ1H. ----> PQ1H. (пропустить последнийточка)