所以有條件的SQL SELECT語句,我有這個表hierchical數據,和我想選擇頂層,並將其插入到一個名爲「頂級」創建可插入
欄下面有什麼數據看起來像 頂級組織稱爲頂級組織,最終所有較低級別的頂級組織都是頂級組織。
Organization | Parent Org | GParent Org | GGParent Org | Toplevel
Top-Level | - | - | -| - |
Food Corp | Top-Level | - | -| - |
Taco Bell | Food Corp | Top-Level | -| - |
Taco Bell Express | TacoBell | Food Corp | Top-Level | - |
KFC | Food Corp | Top-Level | -| - |
Chuck e. Cheese | Top-Level | -| - | -|
我無法找到足夠接近的例子,可以幫助我瞭解如何做選擇有條件/插入一個字符串。
如果Parent Org = Top-Level,Org應該被選中並插入列頂層的條件。在數據庫中,如果沒有更多的父組織,頂級顯示爲父級。無論哪裏找到最高級別,都會選擇一個級別(如Food Corp,chuck e。cheese)並將其插入Toplevel列。希望不是太混亂。
這裏的select語句的半英文版:
select Org.displayName, Parent.displayName as ParentOrg_Name, GParent.displayName as gParentOrg_Name,GGParent.displayName as ggParentOrg_Name, Org.uid, Org.accountType, Org.orgType,Parent.orgType, GParent.orgType
CASE
If Org.ParentOrg_Name == Top-Level,
then toplevelorg = Org.Displayname
elseif gParentOrg_Name == Top-Level,
then toplevelorg = ParentOrg_Name
elseif ggparentOrg_Name == Top-Level,
then toplevelorg = gParentOrg_Name
else toplevelorg = ggparentOrgName
from dbo.Organization Org
LEFT OUTER JOIN dbo.Organization Parent ON Org.parentOrganization_id = Parent.id
LEFT OUTER JOIN dbo.Organization GParent ON Parent.parentOrganization_id = GParent.id
LEFT OUTER JOIN dbo.Organization GGParent ON GParent.parentOrganization_id = GGParent.id
的MySQL,PHP ......一個工作的頂層列會幫我做一個有意義的組通過,因爲我不能簡單地按父ID而不會與較低級別的orgs(他們擁有)分開頂級orgs。
尋找教一個男人釣魚的反應,包括一個解釋'如何選擇org.displayname插入列'頂層'工作在這樣的陳述?我看着這些條件陳述,並且無法理解THEN部分。請注意,我不知道是否應在頂部選擇子句中放置「select toplevel」。我期待任何迴應
那麼END AS會將它插入到columnname toplevelorg?超級謝謝你btw –
當我結束AS頂級組織,這是否需要我改變選擇部分必須添加「,toplevelorg CASE .... END AS toplevelorg」到選擇結束,或者只是做CASE .. end as,並且將toplevelorg定義爲自己的列,而不需要將toplevelorg放兩次 –
@ J-Dizzle否,'END'結束'CASE',並且'AS'與您的結構相同。 G。作爲ggParentOrg_Name已經在'GGParent.displayName'中使用,只是使用'CASE'表達式而不是列名作爲第一部分。 – FrankPl