2014-12-01 2 views
1

열 개가있는 열 (char varying)이 있습니다. "k45"와 같은 첫 번째 항목을 삭제해야합니다. 어떻게해야합니까? 내 콜 럼에서열에서 i 번째 항목을 삭제하는 방법은 무엇입니까?

값 :

테이블의 "첫 번째 항목"같은 것은 없다
k45 
e58 
f65 
s58 
+4

새 데이터베이스 모델을 만들려면 다음을 수행하십시오. 문제는 정확히 정규화가 의미있는 이유입니다. –

+0

질문이 명확하지 않습니다. 레코드를 삭제하거나 열을 무효화 하시겠습니까? –

+0

첫 번째 항목의 레코드를 삭제하고 e58처럼 저장합니다. f65 s58 – utc1205

답변

0

. 테이블은 정렬되지 않은 세트를 나타냅니다. 순서에 대한 열이 필요합니다.

delete from t 
    where ctid = (select min(ctid) from t where value = 'k45'); 
0

당신 경우 : 당신이하지 않은 경우

delete from t 
    where id = (select min(id) from t where value = 'k45'); 

이러한 id 당신이 ctid, 내장 식별자를 사용하여 하나 개의 행을 삭제할 수 있습니다 : 당신은 같은 열이있는 경우

열에 별개의 가치가 있으십시오. 아래에서 작동해야합니다.

delete from tablename where column_name in 
(select column_name from 
(select column_name from tablename 
order by rowid asc) 
where rownum<2); 
+0

Postgres에는 유효하지 않습니다. –

관련 문제