Ⅰ sql按某個欄位值順序排序
升序:select * from 表名 order by 表中的欄位 asc(MySQL中默認是升序排列,可不寫) ;
降序:select * from 表名 order by 表中的欄位 desc ;
Ⅱ SQL字元型欄位按數字型欄位排序實現方法
這是很久之前的就遇到的問題了,去年寫了個WP插件:WordPress投票插件Ludou
Simple
Vote,由於有些使用者需要一個投票排行榜,所以需要用一條SQL來讀取按得分排序的文章列表。
Ludou
Simple
Vote的投票得分結果是以自定義欄目的方式存儲在WordPress的postmeta中,分值存放在meta_value欄位,而meta_value欄位類型是longtext,如果直接使用下面的SQL查詢語句來排序:
復制代碼
代碼如下:
ORDER
BY
`meta_value`
那麼按得分排序得到的結果可能是:
1
10
11
123
1234
2
25
253
3
由於是按字母順序排列,所以123排在了2的前面,顯然不符合我們的要求,那麼怎樣才能按照我們預想的數字順序排序呢?下面介紹兩種方法。
一、採用MySQL的cast函數,轉換欄位格式
這里我們將meta_value欄位轉換成數值類型的欄位DECIMAL,然後再進行排序:
復制代碼
代碼如下:
ORDER
BY
CAST(`meta_value`
AS
DECIMAL)
需要注意的是,你所要排序的meta_value欄位的值必須都是可轉換成數字,否則將會出錯。
二、使用MySQL絕對值函數ABS
使用MySQL絕對值函數ABS,它告訴MySQL使用絕對值來處理處理這個欄位:
復制代碼
代碼如下:ORDER
BY
ABS(`meta_value`)
Ⅲ sql server 如何給text數據類型排序
// ---- 假設有一個按鈕,點擊事件如下:
private void button2_Click(object sender, EventArgs e)
{
// ---- 從資料庫獲取數據
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(ConnInfo);
// --- [title], [size], [content] 資料庫中存放的文章的標題、大小、內容,其中[content]是Text類型
cmd.CommandText = "select [title], [size], [content] FROM [DRCDB].[dbo].[Documents];";
cmd.Connection.Open();
byte[] bytes; // --- 關鍵點,准備存放Text類型數據
int size = 0;
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
size = rdr.GetInt32(1);
bytes = new byte[size];
rdr.GetBytes(2, 0, bytes, 0, size); // 從第3個列中讀出Text類型數據
// --- 下面是處理文件的方式之一:保存文到d:\test1\目錄
File.WriteAllBytes(@"d:\test1\" + rdr.GetString(0), bytes);
}
}
}
Ⅳ 關於ORACLE使用PL/SQL查詢結果按照文本排序的問題
你那個欄位可能是文本類型的,輸出時做個類型轉換:
select to_number(欄位名) fieldname
from tablename
order by fieldname;
Ⅳ 如何用資料庫sql把一列數據從大到小排列
select * from 表名 order by 要排列的欄位 desc。
Ⅵ SQL查詢並排序問題
select * from 表 where 欄位 in (x1,x2,x3,x4.....) order by 欄位 ASC/DESC
此中排序欄位是索引條件中欄位,ASC為升序,DESC為降序,此中的排列會以X1,X2,X3排序,但X1可能有很多數據,如果在X1內部排序,請加上第二排序。
select * from 表 where 欄位 in (x1,x2,x3,x4.....) order by 欄位 ASC/DESC,欄位2 ASC/DESC
此表達式是在X1,X2等排序的基礎上再按欄位2進行排序!
我就不明白,如何是多數據,X1,X2等又包含多個條記錄,你就不想用Group呢?
你想看一下group by 的使用方法,對時可以對分組條件進行限定,關鍵詞是having,使用方法類where,但與where是有區別的!
Ⅶ sql資料庫數字排序問題
ORDER BY cast(你的欄位名 as int)
這里的原因是因為你的那個欄位雖然存儲了數字值,但是它是一個字元型
而字元型的 '2' 比 '11'要大 因為是從第一個字母開始比其的
Ⅷ sql字元型數字排序。
因為你這是字元串,如果想按照後面的數字排序的話就要單列出來,比如:
selectc1,cast(SUBSTRING(c1,2,len(c1)-1)asint)from(
select'D1'c1UNION
select'D2'UNION
select'D10'UNION
select'D12'UNION
select'D100'UNION
select'D101'UNION
select'D200'
)asaorderby2
Ⅸ 文本格式的數據在SQL里怎麼排列大小
文本格式的數據雖然包含了各種數字、字元、符號、字母、漢子等數據,但它們都已一定排序規律的。所以,就像排列數值一樣排列就可以了。
Ⅹ sql語句中對一個欄位排序,欄位中含有字元串和數字,(怎根據數字進行排序)
order by 欄位名稱+0 desc/asc的形式進行排序
order by 欄位名稱*1 desc/asc的形式進行排序