我有秩序的問題。例如,我有三個詞,波蘭語:「Zzzz」,「Żubr」和「Zajawka」。通過使用波蘭語的字母順序
他們應該是有點像說:
Zajawka
Zzzz
Żubr
原因ž封信是拋光alfabet Z後。但排序對我說:
Zajawka
Żubr
Zzzz
所以它把字母Z像ž信...
我有秩序的問題。例如,我有三個詞,波蘭語:「Zzzz」,「Żubr」和「Zajawka」。通過使用波蘭語的字母順序
他們應該是有點像說:
Zajawka
Zzzz
Żubr
原因ž封信是拋光alfabet Z後。但排序對我說:
Zajawka
Żubr
Zzzz
所以它把字母Z像ž信...
我假設數據庫未與波蘭整理創建。但是你可以在排序時始終指定它:
SELECT name
FROM mytable
ORDER BY name COLLATE SQL_Polish_Cp1250_CS_AS_KI_WI
編輯:
我誤讀了標籤,並以爲這就是SQL Server中。如果你有不同的RDBMS,請在評論中回答@RaphaëlAlthaus的問題。
我使用Heidi的MysqL SQL –
儘管MySQL似乎不支持波蘭的整理,但同樣的語法也適用於此。看看[這個列表](http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html) - 也許東歐的一個將適用,但我承認我沒有檢查了這個。 – Mureinik
有一個'utf8_polish_ci'字符集,但我在「是否對波蘭字符進行排序」中找到了不同的答案...... –
從數據庫中提取記錄後,您必須重新排序,因爲它將Ż視爲英文字符z。
您需要編寫自定義重新排序方法,您只需在z之後對其進行排序。
或
您可以獲取除Ż以外的所有記錄。
然後在另一個查詢中提取所有隻有Ż的記錄,並在預取列表的末尾附加這個列表。
選擇不從客戶端具有Z字符的名稱 選擇*如果client.name!= ž AND(我的過濾器)
SELECT * FROM客戶在哪裏client.name == Z,它們記錄 AND(我的過濾器)
代碼隱藏(C#):
SqlDataReader dr = cmd.ExecuteReader();
List<Product> myList = new List<Product>();
while (dr.Read())
{
myList.Add(GetFromReader(dr));
}
if (dr.NextResult())
{
while (dr.Read())
{
myList.AddRange(GetFromReader(dr));
}
}
什麼是你的DBMS? –
我的數據庫管理系統是MySQL –