⑴ sql中Order By的意義和用法
以下內容參考 w3school 中關於SQL的教學,可以點擊藍字參考原文。
ORDER BY 語句用於 根據指定的列 對 結果集 進行 排序 。
ORDER BY 語句 默認 按照 升序 對記錄進行排序。
如果您希望按照 降序 對記錄進行排序,可以使用 DESC 關鍵字。
註:對字元串排序的時候會按 首字元 的 ASCII值 排列,如果首字元相同,則向後看一位。
原始的表 (用在例子中的):
Orders 表:
實例 1
以字母順序顯示公司名稱:
SELECT Company, OrderNumber FROM Orders ORDER BY Company
實例2
以字母順序顯示公司名稱(Company),並以數字順序顯示順序號(OrderNumber):
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
結果:
看此結果和上一結果不同之處在於,Company值相同的行,排序按照OrederNumber的升序排列。
實例 3
以逆字母順序顯示公司名稱:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
結果:
實例 4
以逆字母順序顯示公司名稱,並以數字順序顯示順序號:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
結果:
注意:在以上的結果中有兩個相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值為 nulls 時,情況也是這樣的。
問題描述
Mysql排序時如果用的欄位為字元型,排序出來時這樣的:
1,10,2,20,3,4,5
這種排序是按照字元從第一個字元開始比較出來的,但不是我們想要的,我們想要的是:
1,2,3,4,5……,10,20
解決方案
排序時,把相應的欄位轉換成整型,使用CAST函數,如下:
CAST(seat_row AS UNSIGNED)
將seat_row列轉換為UNSIGNED的數值類型。
⑵ SQL SERVER中datetime類型的顯示格式問題
可以考慮使用SQL中convert函數轉換datetime類型的顯示格式。
convert函數定義:
CONVERT() 函數是把日期轉換為新數據類型的通用函數。
具體convert函數語法:
CONVERT(data_type(length),data_to_be_converted,style)
其中:data_type(length)為目標數據類型(帶有可選的長度);
data_to_be_converted為需要時間轉換的值;
style為輸出日期/時間的表示格式。
實例:
下面的腳本使用 CONVERT() 函數來顯示不同的格式。我們將使用 GETDATE() 函數來獲得當前的日期/時間:
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
結果為:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
拓展資料:
SQL語言包含6個部分:
一:數據查詢語言(DQL:Data Query Language):
其語句,也稱為「數據檢索語句」,用以從表中獲得數據,確定數據怎樣在應用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類型的SQL語句一起使用。
二:數據操作語言(DML:Data Manipulation Language):
其語句包括動詞INSERT,UPDATE和DELETE。它們分別用於添加,修改和刪除表中的行。也稱為動作查詢語言。
三:事務處理語言(TPL):
它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:數據控制語言(DCL):
它的語句通過GRANT或REVOKE獲得許可,確定單個用戶和用戶組對資料庫對象的訪問。某些RDBMS可用GRANT或REVOKE控制對表單個列的訪問。
五:數據定義語言(DDL):
其語句包括動詞CREATE和DROP。在資料庫中創建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。DDL包括許多與人資料庫目錄中獲得數據有關的保留字。它也是動作查詢的一部分。
六:指針控制語言(CCL):
它的語句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用於對一個或多個表單獨行的操作。
⑶ w3school和w3cschool兩個網站有什麼關系和區別
w3school是06年注冊的,而w3cschool是09年注冊的。
其中w3cschool是應w3c中國組織官方而出的,
而w3school是上海贏科投資有限公司進行投資的,
但是是為了協助w3c中國組織而出的
重點大家應該也看出來了,就在這個「協助」二字。
結果不言而喻,都為了免費服務大眾罷了,
可能先前的那些類似相同的都是直接w3c照搬過來,
但是之後的內容就不會再給予相同的了。
而w3school涵蓋內容較多,但w3cschool的樣例說明比w3school要豐富
⑷ sql查詢沒有數據的時候怎麼用0填充
這樣:
SELECT
a.dt AS '時間',
ISNULL(b.yield, '0') AS '數據'
FROM
(
SELECT
dateadd(d, number, '2018-11-01') dt
FROM
master..spt_values
WHERE
type = 'p'
AND dateadd(d, number, '2018-11-01') <= '2018-11-30'
) a
LEFT JOIN CE_BD_E_ELECTRIC_WORKSHIFT_T b ON a.dt = b.opdate
(4)3schoolsql擴展閱讀:
注意事項
COALESCE是一個函數, (expression_1, expression_2, …,expression_n)依次參考各參數表達式,遇到非null值即停止並返回該值。如果所有的表達式都是空值,最終將返回一個空值。使用COALESCE在於大部分包含空值的表達式最終將返回空值。
場景一:你想要獲取最大值,然後+1返回(即返回的值已經默認為空了),程序接收了本來不該為空的值去運算,就會出錯。
SELECT MAX(my_money)+1 FROM tb_test;
改進方法:使用 coalesce函數 COALESCE(值1, 值2,......, 值n) ,只要遇到非null值就返回。
這樣子就可以設置一個值,讓你第一個不成功後,返回指定的值,如下面,返回的是1.
SELECT COALESCE(MAX(my_money)+1, 1) FROM tb_test;
⑸ w3school sql訓練的資料庫表 sql語句的查詢必須有表才行啊,但是w3schoolsql訓練的那些建表語句哪裡有
建表語句不是在左側目錄的下面么 查詢語句在上面
⑹ sql 語句 count 使用請教
可以這樣寫
select sum(iif(sex='男',1,0)) as 人數 from stuinfo
也可以用case when
select sum(case sex when '男' then 1 else 0 end)) as 人數 from stuinfo