[SQL] 어떻게 열 및 업데이트 테이블의 값을 정렬하려면?
SQL어떻게 열 및 업데이트 테이블의 값을 정렬하려면?
나는 SQL로 완전히 새로 온 사람과 자신을 그렇게 할 수 없습니다. 그래서 나는 당신의 도움이 필요합니다. 나는 열에서 값을 정렬 한 후 변경 사항을 저장합니다. 하지만 그렇게하는 방법을 모르겠어요.
같은 테이블 외모 :
Id | Name | SomeDescription
---------------------------
1 |Best | Description1
2 |Worth | Description2
3 |Good | Description3
나는 그런 일을하고 싶지 :
Id | Name | SomeDescription
---------------------------
1 |Best | Description1
2 |Good | Description3
3 |Worth | Description2
나는 "ID"와 "이름"열을 정렬 할 필요가 그래서.
나는 "이름"열 정렬 값으로 문을 다음 사용
SELECT * FROM games ORDER BY name ASC
그러나 어떻게 id 컬럼과 테이블에 변경 저장 값을 정렬 할 수 있습니다? 도와주세요.
해결법
-
==============================
1.당신은 두 번째 테이블을 사용하는 것
당신은 두 번째 테이블을 사용하는 것
이 단계는 당신이 원하는 발생합니다.
-
==============================
2.당신은 행 번호를 다시 지정하기 위해 ROW_NUMBER 순위 기능을 사용할 수 있습니다.
당신은 행 번호를 다시 지정하기 위해 ROW_NUMBER 순위 기능을 사용할 수 있습니다.
SELECT UnsortedId = id , SortedId = ROW_NUMBER() OVER (ORDER BY g.name, g.id) FROM games
-
==============================
3.당신은 간단 테이블 변경 명령을 사용할 수 있습니다.
당신은 간단 테이블 변경 명령을 사용할 수 있습니다.
mysql> ALTER TABLE games ORDER BY name asc;
그게 다야 !
-
==============================
4.간단하다. 몇 가지 코드를 사용합니다. 나는 이것을 시도하며 노력하고 있습니다. 동시에 값을 정렬하는 동안 먼저 임시 테이블을 만들 수 있습니다.
간단하다. 몇 가지 코드를 사용합니다. 나는 이것을 시도하며 노력하고 있습니다. 동시에 값을 정렬하는 동안 먼저 임시 테이블을 만들 수 있습니다.
create table new as select * from games order by name;
다음, 게임 테이블을 사용하여 삭제
drop table games;
사용 (여기 정렬하는 것은 선택 사항입니다) 지금 새로운에서와 동일한 속성 및 데이터 다시 게임 테이블을 생성,
create table games as select * from new order by name;
이제 임시 테이블을 드롭 '새로운'
drop table new;
지금 당신의 표를 확인. 그것은 정리해야합니다.
-
==============================
5.당신은 동시에 두 개의 필드를 정렬 할 수 있습니다.
당신은 동시에 두 개의 필드를 정렬 할 수 있습니다.
SELECT * FROM games ORDER BY id DESC, name ASC
난 당신이 테이블에 변경 저장 무슨 뜻인지 이해가 안 돼요. 순서에, 그냥 당신이 업데이트를 수행하지 않는 한이 테이블의 데이터를 변경하지 않습니다에서 찾고있는 디스플레이를 변화하고 있습니다.
당신은 SQL에 익숙하지 않은 경우, 온라인 자습서의 많은 그 캔 도움이 있습니다
SQL 코스
초급 SQL 자습서
SQL 자습서 - SQL 알아보기
의견에 따라 편집,이 한 단계에서 수행 할 수 있습니다 :
create table #temp ( id int, name varchar(50), somedesc varchar(50) ) insert into #temp values (1, 'best', 'desc1') insert into #temp values (2, 'worth', 'desc2') insert into #temp values (3, 'good', 'desc3') update t1 SET t1.id = t2.rn , t1.somedesc = t1.somedesc FROM #temp t1 JOIN ( select id, name, somedesc, row_number() over(order by name, id) as rn from #temp ) t2 on t1.id = t2.id select * from #temp order by id drop table #temp
-
==============================
6.이것은 내 수정 ... 바보 간단하다 :
이것은 내 수정 ... 바보 간단하다 :
SELECT SortKeyValue는 SourceTable FROM INTO #Temp (단지 기존의 시퀀스를 포함하지 않는, 다른 고정 된 값을 추가)
TRUNCATE TABLE SourceTable
INSERT INTO SourceTable (SortKeyValue, DisplayOrder (더하기 다른 필드)) SELECT SortKeyValue, ROW_NUMBER () OVER (SortKeyValue BY ORDER) AS DispOrd #Temp FROM (및 다른 필드);
-
==============================
7.SQL> 게임 SELECT * FROM ORDER BY ID, NAME;
SQL> 게임 SELECT * FROM ORDER BY ID, NAME;
from https://stackoverflow.com/questions/10079750/how-to-sort-values-in-columns-and-update-table by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQLite는 내부 조인 - 업데이트가 다른 테이블의 값을 사용하여 (0) | 2020.06.09 |
---|---|
[SQL] ORDER BY는 먼저 숫자에 따라 알파벳 (0) | 2020.06.09 |
[SQL] MySQL의 GROUP BY 날짜 시간 +/- 삼초 (0) | 2020.06.09 |
[SQL] 어떻게 JPA 명명 된 쿼리의 IN 절에서 동적 매개 변수를 사용하는 방법? (0) | 2020.06.09 |
[SQL] SQL 서버는 웹 요청을 보낼 수 있습니까? (0) | 2020.06.09 |