2010-06-07 66 views
1

我已存儲在數據庫中作爲如何扭轉查詢或c#詞語

位置的順序

印度,塔米爾納杜,奈,Annanagar

而我在網格結合查看它-111顯示爲 '印度,泰米爾納德邦,金奈,安納加格'這種格式。

但我需要以這種格式顯示爲'Annanagar,Chennai,Tamilnadu,India'。如何在查詢或c#中執行這個相反的順序。

注意:這是存儲在一列'印度,泰米爾納德邦,金奈,Annanagar'用逗號分隔。

+0

但這不是單獨存儲以作爲orderby。它被聯合儲存在一個專欄中,分別是「印度,泰米爾納德邦,金奈,安納那加爾」 – Innova 2010-06-07 10:48:20

回答

10

我相信OP提供的位置例如是從DB只是一個結果他正在尋找這樣的東西:

string location = "India,Tamilnadu,Chennai,Annanagar"; 
string[] words = location.Split(','); 

Array.Reverse(words); 

string newlocation = String.Join(",", words); 

Console.WriteLine(newlocation); // Annanagar,Chennai,Tamilnadu,India 
1

在SQL中,您可以使用查詢的順序。

SELECT * FROM location 
ORDER BY City 

這將返回City列按字母順序排列的結果。

如果你想顛倒順序,這樣它會從ž下單 - >一個,你會做

ORDER BY City DESC 

它通常是一個好主意,申請某種在你的查詢訂購的,這將是用於顯示,否則結果會以一個隨機的非確定性順序返回,這很少是您想要的。

2

在SQL語法:

SELECT location FROM locations ORDER BY location ASC // server side sorting 

或者,如果你有你的結果在一個DataTable,你可以這樣做:

table.DefaultView.Sort = "location ASC"; // client side in-memory sorting 
0

你問如何使串局部性,市,州,國家,當你有它存儲在相反的順序?那麼你不能使用排序來做到這一點。

如果您將所有值存儲在單個字段中作爲逗號分隔值,則在C#中,可以通過逗號分隔字符串作爲分隔符,然後通過使用逗號以相反順序附加項來再次加入它作爲分隔器。

1

使用C#我們有:

var arr = new[] { "India", "Tamilnadu", "Chennai", "Annanagar" }; 

使用LINQ:

var q = from location in arr 
     orderby location ascending // or descending 
     select location; 

使用擴展方法:

var q = arr.OrderBy(l => l); 
var q = arr.OrderByDescending(l => l);