2014-11-28 3 views
0

1 이런
ID
1
2
3
4
5
6
7
8 추천 ID 호출 한 컬럼 표라는 테이블 이름이

이제는 이처럼 넣어줬으면합니다.,451,515,밖으로 다른 값 1 coumn가
coumns 이름이 ID1, ID2의 ID3 등 어느 것일 수 1 행해진다 수단1 cloumn 행

4 5 6 7 8 9 10 넣어 .....

ID1, ID2, ID3 ID4 ........ ID10
1 2 3 4 ........ 10

는이 같은 얻을 수 있습니다? 면 어떻게?

+0

PIVOT 함수 찾기 – Nightmaresux

+0

이것은 'PIVOT' 키워드와 결합 된 동적 SQL을 사용하여 수행 할 수 있습니다. [Here] (http://stackoverflow.com/questions/12210692/t-sql-dynamic-pivot)는 좋은 예입니다. – Dan

+0

'1 행 1 행'과 같이 '많은 행 1 열'과 같은가 아니면 모든 행을 독립적 인 열로 만들어야합니까? – Deepshikha

답변

0

이 같은 PIVOT의 funcftion를 사용할 수 있습니다

대신
select * from table1 

pivot 
(
    MAX(ID) for ID in ([1],[2],[3],[4],[5],[6]) 
) piv 

"MAX (ID)는"당신은 당신이 당신의 행에 부여 할 vaules를 삽입 할 수 있습니다.

1

결과 집합을 조 변경하려고합니다. 다음은 PIVOT을 사용하여 SQL에서이를 수행하는 방법에 대한 좋은 정보입니다. Simple way to transpose columns and rows in Sql?

또 다른 옵션은 Excel에서 데이터를 복사하고 거기에 조바꿈 한 것입니다 (붙여 넣기 옵션이 내장되어 있습니다).

-1

SQL 쿼리는 항상 사전에 알려진 열을 가져옵니다. 이것은 당신의 업무에 주어지지 않습니다. 따라서 SQL만으로는이 문제를 해결할 수 없습니다.

일반적으로 프로그램에서 SQL을 사용하고 프로그램은 프로그래밍 언어로 작성됩니다. 원하는대로 출력 형식을 지정하려면 해당 언어 (PHP, Java, C# 등)를 사용하십시오.

편집 : 좋아, 나는 downvote 있어요. 내 대답이 너무 정직 했니? 너무 똑바로 앞으로? :-) 아니면 그냥 충분히 정교하지? 후자의 경우, 무엇을해야 하는지를 보여줄 코드가 있습니다. 이것은 매우 간단합니다. 작업입니다. 예, 더 복잡한 방법으로이 문제를 해결할 수있는 방법이 있지만 왜 이것을 할 것입니까?

$query = $db->query("select id from table1 order by id"); 
for($i=1; $row = $query->fetch_object(); ++$i) 
{ 
    $header = $header."<td>ID ".$i."</td>"; 
    $data = $data."<td>".$row->id."</td>"; 
} 
echo "<tr>".$header."</tr>"; 
echo "<tr>".$data."</tr>"; 

이 코드에는 결함이있을 수 있습니다. 나는 지금까지 mysqli로 일했다.

+0

동적 SQL을 사용하면 알 수없는 이전 열을 반환하는 쿼리를 사용할 수 있습니다. [Here] (http://stackoverflow.com/questions/12210692/t-sql-dynamic-pivot)는 정확하게 이것을 수행하기 위해'PIVOT' 키워드로 동적 SQL을 사용하는 방법의 예입니다. – Dan

+0

무엇? 왜 PIVOT 기능을 사용할 수 없으며, 원하는대로 정확하게 처리 할 수 ​​있습니까? – Nightmaresux

+0

@ Dan : 예, 언어를 사용하여 SQL을 빌드 할 수 있습니다. SQL과 프로그래밍 언어가 혼합 된 T-SQL은 (PL/SQL for Oracle 또는 Java 등도 그렇듯이) 제공합니다. 하지만 SQL만으로는이 문제를 해결할 수 없습니다. 이 요청은 mysqli로 태그되어 있으므로 PHP는 결과 목록을 처리 할 수 ​​있어야하므로 PHP를 사용하여 원하는대로 데이터를 선택하고 표시하는 것이 바람직 할 수 있습니다. –

0
에 대한 구글 검색을

다음을 시도하십시오.

declare @tab1 table (id int) 

insert into @tab1 select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9 union select 10 

select * from @tab1 

select [1] as id1, [2] as id2, [3] as id3, [4] as id4, [5] as id5, [6] as id6, [7] as id7, [8] as id8, [9] as id9, [10] as id10 
from 
(
select id from @tab1 
) t 
pivot 
(
max(id) for id in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10]) 
)pvt 

동적 SQL을 사용하여 쿼리를 일반화 할 수 있습니다.

감사합니다.