2016-09-16 70 views
-1

我有我要轉換爲字符串取決於它的價值即顯示字符串JOIN語句

select語句我想沿着線的東西:

SELECT SchoolID (IF SchoolID = 1 Convert STRING("London"), IF SchoolID = 2 Convert STRING ("Glasglow") ELSE Convert STRING(new school")), 
L.Location 
FROM Schools SC 
Join Location L 
On L.LocationID = SC.LocationID 
Where SchoolID < 200 

不知道如何解決這個問題。

非常感謝, 山姆

- 編輯括號內是我應該看不實際的代碼的語法

+0

標記您正在使用的dbms。 (看起來像一些非ANSI SQL。) – jarlh

+0

爲什麼表達式是?你沒有將學校編號和他們的城市存儲在桌子上嗎? – jarlh

+1

看起來像案例,但你最好顯示樣本數據和預期的結果。 – Serg

回答

1

可以使用CASE表達這樣的:

SELECT SchoolID 
, case SchoolID 
    when 1 then 'London' 
    when 2 then 'Glasglow' 
    else  'new school' 
    end as SchoolName 
, L.Location 
FROM Schools SC 
Join Location L 
On L.LocationID = SC.LocationID 
Where SchoolID < 200 
+0

謝謝Kobi,我知道這很簡單! – SCramphorn

1
SELECT SchoolID, CASE SchoolID 
WHEN 1 THEN 'London' 
WHEN 2 THEN 'Glasglow' 
ELSE 'new school' 
END AS New_Value , 
L.Location 
FROM Schools SC 
Join Location L 
On L.LocationID = SC.LocationID 
Where SchoolID < 200 
1

案例語句也可以寫成這樣:

SELECT SchoolID, 
     CASE WHEN SchoolID = 1 THEN 'London' 
     WHEN SchoolID = 2 THEN 'Glasglow' 
     ELSE 'new school' 
     END AS city , 
     L.Location 
FROM Schools SC 
JOIN LOCATIONL ON L.LocationID = SC.LocationID 
WHERE SchoolID < 200 
+0

至少略好一點的縮進。 – jarlh

+0

@Suraz如果你閱讀我的評論,你可以看到我說的「案例陳述也可以這樣寫:」強調「也」。例如。 '案例當學校ID = 1那麼'倫敦''而不是'CASE SchoolID 那麼當時'倫敦'。感謝您爲新來者提供支持。 – VDK

+0

@Suraz我不同意這個事實,你說這不是任何人的支持。我的理解是,這個網站的設立是爲了幫助人們提出的問題,回答的問題或給出的備選答案。這對你來說可能是一個簡單的問題,但對於要求的用戶來說不是,因此他們需要幫助。不要以爲每個人都和你一樣。如果您遇到問題或不同意某事,請諮詢其他人,不要去看他們。此外,你自相矛盾,最初說我的答案是「重複答案」,然後現在說這是「類似的答案......」。 – VDK