저는 pyodbc와 postgres를 사용하고 있습니다.여러 컬럼에 별명을 지정할 수 있습니까? 방법?
여러 컬럼에 별명을 지정할 수 있습니까? 여기
내 문제의 설명이다 :데이터 구조 :
data
id | c1 | c2
-------------
1 | 11 | 12
2 | 21 | 22
표기 : C 열위한
dictionary
id | key | value
----------------
1 | k1 | v11
1 | k2 | v12
2 | k1 | v21
2 | k2 | v22
표기법 K는 키이며, V 값
위한k1과 k2를 두 개의 다른 열로 생각할 수 있습니다. 데이터 구조는 끊임없이 변하기 때문에 이런 방식입니다. 나는 그것을 디자인하지 않았다. 나는 그걸로 가야한다.
나는 (일부 이름으로 가장 중요한 것은, 일부 행에 대해, 내가 접근 할 수 K1 및 K2 열) 나에게 다음과 같은 것을 제공하는 SQL 쿼리를 알아낼 수 없습니다 :
data
id | c1 | c2 | k1 | k2
-------------------------
1 | 11 | 12 | v11 | v12
2 | 21 | 22 | v21 | v22
문제 I을 계속 테이블에 별칭을 지정하면 SQL 결과에 사전 테이블의 두 개의 "키"열이 포함되어 두 열에 액세스 할 수있는 열을 제어 할 수 없지만 행에 별칭을 지정할 수 있습니다. SQL 문 내에서 참조되는 테이블을 제어하지 않습니다.
내가 생각하고 수정 프로그램은 두 개의 열 별칭을하는 것입니다
SELECT * FROM data
FULL JOIN dictionary AS a1,a2,a3
ON data.id = a1
FULL JOIN dictionary AS a4,a5,a6
ON data.id = a4
WHERE a2 = k1 and a5 = k2
표기법 : A는 이것의 결과는 이론적으로 모든
data
id | c1 | c2 | a3 | a6
-------------------------
1 | 11 | 12 | v11 | v12
2 | 21 | 22 | v21 | v22
주 같을 것이다 별명
입니다 a는 기술적으로 여기에있을 것이지만 3과 6은 제가 관심있는 사람입니다
새로운 구문을 만들었습니까 아니면 사용하지 않은 별칭 구문입니까? –
여기 키워드가 "롤업"이라고 생각합니다. 결과 집합의 * 모양 * (즉, 열)이 시나리오에서 변경됩니다. 일반적으로 SQL은 좋지 않습니다. * 동적 인 (또는 일회용) 쿼리는'k0 ... kN' 열을 얻습니다. –
예, 원하는 동작을 설명하기 위해 구문을 구성하고있었습니다 (어떤 열 나는 접근 할 필요가 있었다). Andomar의 대답은 올바른 구문을 보여줍니다. –