>source

SQL Server 2012를 사용하고 있으며 여기에 내 쿼리가 있습니다.

update  tablename set column1=case
when  column2 is null or column2=''  then '1st' 
when  column3 like 'Information%'  and 
(DATEDIFF(YEAR,convert(datetime,column6,103),getdate())) not IN (18,19,20,21)  then '2nd a' 
when  column3 not like 'Information%' and (DATEDIFF(YEAR,convert(datetime,column6,103),getdate())) 
not IN (21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40) then '2nd b'  
when column4 not like '%[^0-9]%' and 
CAST(replace(replace(column5,',',''),'','0') as bigint)
< 10*CAST(CAST((replace(ISNULL(REPLACE(column5,'','0'),'0'),',','')) as float) as bigint)/100  and column12='1' 
then '3rd a'  
when column4 not like '%[^0-9]%' and 
CAST(replace(replace(column5,',',''),'','0') as bigint)
< 20*CAST(CAST((replace(ISNULL(REPLACE(column5,'','0'),'0'),',','')) as float) as bigint)/100  and column12='2' or column12='3' 
then '3rd b'  
when  UPPER(column20)='YES'  or column20='Yes' or column20='Unknown' then '4th' 
when   column15<>'' and column15  not in (select  column2 from  table2) and 
CAST((replace(ISNULL(column15,'0'),',','')) as int) <1000000 
then '5th' 
else  null
end
,  
column2=
case
when    column1='1st'     then  'Rejected Reason'
when    column1='2nd a'   then  'Rejected Reason'
when    column1='2nd b'   then  'Rejected Reason'
when    column1='3rd a'   then  'Rejected Reason'
when    column1='3rd b'   then  'Rejected Reason'
when    column1='4th'     then  'Rejected Reason'
when    column1='5th'     then  'Rejected Reason'
else null end , column10=1  where column11=null

그것은 내 테이블을 업데이트하지 않습니다.

(0 row(s) affected)

같은 단일 쿼리를 시도해도 문제를 구성 할 수 없습니다.

update  tablename set column1=case
when  column2 is null or column2=''  then '1st' 
else  null
end
where column11=null

내가 뭘 잘못하고 있니? 또는 원하는 결과를 얻을 수있는 다른 방법이 있습니까?

  • 답변 # 1

    where column11=null
    
    

    WHERE Column11 IS NULL을 쓰려면 필수입니다.

관련 자료

  • 이전 javascript - 반응 함수 구성 요소의 끝에서 값을 반환 할 것으로 예상되는 linter를 수정하는 방법은 무엇입니까?
  • 다음 문자열이 사전 파이썬의 값에 있는지 확인하는 방법