2

언어 문자열 리소스를 테이블에 저장했습니다. 아래 그림과 같이 이러한 각각의 문화 코드 에 대한 현명한 행으로 저장됩니다하나의 열 데이터를 SQL의 두 열로 표시

--------------------------------------------- 
    CULTURE  KEYFIELD     VALUEFIELD 
---------------------------------------------- 

    en-US  AadhaarUID    Aadhaar UID 
    en-US  Abbreviation   Abbreviation 
    en-US  Abbreviation_CD   Abbreviation 
    en-US  Abbreviation_DM   Abbreviation 
    en-US  AboutPortal    About Portal 
    hi-IN  AadhaarUID    आधार यूआईडी नंबर लिखें 
    hi-IN  Abbreviation   संक्षिप्त 
    hi-IN  Abbreviation_CD   संक्षिप्त 
    hi-IN  Abbreviation_DM   संक्षिप्त 
    hi-IN  AboutPortal    पोर्टल के बारे में 

내가 두 개의 열이 영어에 대한 하나 힌디어에 대한 하나 열 ValueField을 표시합니다. 각 culture의 행 수는 동일합니다. PFFIELDhi-IN에만 있습니다.

------------------------------------------------------- 
    PKFIELD ENGLISH       HINDI 
    ------------------------------------------------------ 
     2  Aadhaar UID     आधार यूआईडी नंबर लिखें 
     4  Abbreviation     संक्षिप्त 
     6  Abbreviation     संक्षिप्त 
     8  Abbreviation     संक्षिप्त 
     10  About Portal     पोर्टल के बारे में 

가 어떻게이 SQL에서 수행 할 수 있습니다

는 다음과 같이 출력이 있어야 할 의미?

감사

+0

'PKFIELD'은'hi-IN'에서만 나온 것입니다. –

+0

의미 ... 표에 결과를 표시 할 때. 'hi-IN' 값만을 수정해야합니다 ..'US-US'은 읽기 전용입니다.'hi-IN'을 편집하려면'_PK' 필드가 필요합니다 – Pawan

+0

업데이트 된 답변을 확인하십시오. 덕분에 –

답변

2

이 시도 :

SELECT 
    PKField = MAX(CASE WHEN Culture = 'hi-IN' THEN PKField END), 
    English = MAX(CASE WHEN Culture = 'en-US' THEN ValueField END), 
    Hindi = MAX(CASE WHEN Culture = 'hi-IN' THEN ValueField END) 
FROM temp 
GROUP BY KeyField 
+0

. 'PrimaryKeyField'라는 표시 할 필드가 하나 더 필요합니다. 'PrimaryKeyField'는 'hi-IN'에서만 가져올 수 있습니다. 어떻게 할 수 있습니까? – Pawan

+0

질문과 결과를 업데이트 할 수 있습니까? 감사합니다. –

+0

나는 Qte를 업데이트했습니다. PLZ 좀 봐 – Pawan

0
SELECT [English] = E.[ValueFiled] 
     ,[Hindi] = H.[ValueFiled] 
FROM [TableName] E 
INNER JOIN (SELECT * FROM [TableName] H WHERE H.[Culture] = 'hi-IN') H 
     ON E.[KeyField] = H.[KeyField] 
WHERE E.[Culture] = 'en-US' 
0
select a.valuefield as "ENGLISH", b.valuefield as "HINDI" 
from tab a, tab b 
where 
    a.keyfield = b.keyfield 
    and a.culture = 'en-US' 
    and b.culture = 'hi-IN' 
; 
1

을 그리고 좋은 측정을 위해, 당신은 또한 피벗을 수행 할 수 있습니다 -이 언어의 큰 숫자에 더 유용 할 것입니다 :

SELECT [KEYFIELD], [en-US], [hi-IN] 
FROM Abbreviations 
PIVOT 
(
    MAX([VALUEFIELD]) 
    FOR [CULTURE] IN ([en-US], [hi-IN]) 
) y; 

SqlFiddle here

관련 문제