Есть ли способ обновить Col B, если Col A содержит только Numeric, Col A - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть два Col, а именно A & B, необходимо обновить B col, когда A col содержит только Numeric

Мне нужно обновить только Col, если A содержит Numeric Else, выход

Iя застрял с ним, ниже мой запрос

Update set empID = New_EMP_id 
Where RegID = New_RegID AND (RegSeq = '%[^0-9]%' or RegSeq='' or RegSeq = 'NULL')

Заранее спасибо

Ответы [ 4 ]

1 голос
/ 25 апреля 2019

Вы можете использовать TRY_CAST, что-то вроде

UPDATE table1 
SET empID = New_EMP_id 
WHERE RegID = New_RegID AND (ReqSeq IS NULL OR TRY_CAST(ReqSeq AS INT) IS NOT NULL)
1 голос
/ 25 апреля 2019

Исходя из вашего синтаксиса, я предполагаю, что вы используете SQL Server. Если так:

update t
    set empID = @New_EMP_id 
where RegID = @New_RegID and
      (RegSeq not like '%[^0-9]%' or RegSeq is null);
0 голосов
/ 16 мая 2019

Попробуйте это:

Declare @t table ( a varchar (10),b varchar(10))

Insert into @t values ('TEST','TEST')
Insert into @t values ('ABC','1245A')
Insert into @t values ('ABC','1245')



Update a1 set a='Updated' 
from @t a1
where ISNUMERIC(b) = 1

select * from @t
0 голосов
/ 25 апреля 2019

Попробуйте, если sql-server версия больше или равна 2008,

Update set empID = New_EMP_id 
Where RegID = New_RegID and (isnumeric(RegSeq) = 1 or RegSeq='' or RegSeq = 'NULL')
...