2014-12-09 5 views
1

액세스 할 때 주어진 열의 레코드를 선택하고 선택한 열로 해당 열을 업데이트 할 수 있습니까?같은 열의 값을 가진 열의 값 변경

:

----column---- 
    test 




--------------- 

는 첫 번째 테이블 블랭크 및 방법은 두 번째 테이블 이들 블랭크는 첫 번째 행에 있었던 값으로 채워졌다

-----Column------ 
     test 
     test 
     test 
     test 
------------------- 

공지된다. 특별히 "update to test"를하지 않아도이를 수행 할 수 있습니까? 나는 "테스트"를 위해 공란을 구체적으로 업데이트 할 필요가 있음을 Access에 말하지 않고이를 수행하는 방법을 놓치고 있습니다. 당신을 가정

+0

액세스 및 다른 데이터베이스에서 레코드를 업데이트하는 방법'update'을 사용하는 것입니다. 나는 당신이 정말로 업데이트를하지 않고 업데이트를 원한다면 무엇을 요구하고 있는지 전혀 모른다. –

+0

저는 여전히 업데이트를 사용하고 싶습니다. 업데이트 할 내용을 구체적으로 말하고 싶지 않습니다. 첫 번째 레코드가 열에 있는지 확인하고 나머지 열을 해당 레코드가 무엇이든 업데이트하는 방법이었습니다. –

답변

0

이것은 당신이 원하는 것을 할 것입니다 :

UPDATE Table1, (SELECT TOP 1 Field1 As F FROM Table1 WHERE Field1 Is Not Null) 
    SET Field1 = F 
    WHERE Field1 Is Null 

을 안전하게 몇 가지 특별한 경우를 처리합니다

둘 이상의 행이 Fleld1에 값이있는 경우
  • , 최초의 행의 값을 사용 .
  • 테이블의 첫 번째 행은 Field1에 값을 가질 필요가 없습니다.
  • Field1에 값이있는 행이 없으면 아무런 문제가 발생하지 않습니다.

는 전에 :

Field1 Field2 
      apple 
    pet  cat  
      dog  
    color red  
      blue  

후 :

Field1 Field2 
    pet  apple 
    pet  cat  
    pet  dog  
    color red  
    pet  blue  
+0

이 작품! 고맙습니다 –

0

가 있습니다

  • 테이블 MY_TABLE
  • 하나는 COL_1

업데이트 문에 대한 값 (null이 아닌)을 보유하고있는 열 COL_1

  • 여러 레코드 null이 아닌 값으로 모든 레코드의 COL_1을 채우려면 :

    update MY_TABLE 
        set COL_1 = (select COL_1 FROM MY_TABLE where COL_1 is not null) 
    where COL_1 IS NULL; 
    
  • +0

    열 이름에 구문 오류가 발생했습니다. (원래 열에는 공백이 포함되어 있습니다. 예, 좋지는 않습니다.) 열 이름 주위에'[] '를 붙이면 이제는 다음과 같은 작업을 수행해야합니다. 업데이트 가능한 쿼리를 사용합니다'. –

    +0

    는 공백을 포함하지 않지만 동일한 문제가있는 열 이름을 수정했습니다. 나는 틀린 것을 이해하지 못한다. 읽기 전용 파일이 아니며 관계도 없습니다. –

    +0

    자백 : 현재 Access db를 사용할 수 없습니다. 나는 표준 SQL 방식으로 대답했다. 어쩌면 그것은 내부 선택과 관련이 있습니다. 데이터베이스는 쿼리가 항상 하나의 값만 반환한다는 것을 확신 할 수 없습니다. 다른 제안 (테스트되지 않음) : inner select를'(COL_1이 NULL이 아닌 MY_TABLE에서 max (COL_1)을 선택하십시오.)'대체하십시오. 이것은 항상 하나의 값만 리턴합니다. 희망이 작동합니다. – Conffusion