說明列示typevenderpcs字段以type字段排列case可以方便地實現多重選擇類似select 中的case select type
sum(case vender when
A
then pcs else
end)
sum(case vender when
C
then pcs else
end)
sum(case vender when
B
then pcs else
end) FROM tablename group by type
顯示結果
type vender pcs
電腦 A
電腦 A
光盤 B
光盤 A
手機 B
手機 C
說明選擇從到的記錄 select top
* from (select top
* from table order by id asc) table_別名 order by id desc
隨機選擇數據庫記錄的方法(使用Randomize函數
通過SQL語句實現)
對存儲在數據庫中的數據來說
隨機數特性能給出上面的效果
但它們可能太慢了些
你不能要求ASP
找個隨機數
然後打印出來
實際上常見的解決方案是建立如下所示的循環
Randomize
RNumber = Int(Rnd*
) +
While Not objRec
EOF
If objRec(
ID
) = RNumber THEN
這裡是執行腳本
end if
objRec
MoveNext
Wend
這很容易理解
首先
你取出
到
范圍之內的一個隨機數(假設
就是數據庫內記錄的總數)
然後
你遍歷每一記錄來測試ID 的值
檢查其是否匹配RNumber
滿足條件的話就執行由THEN 關鍵字開始的那一塊代碼
假如你的RNumber 等於
那麼要循環一遍數據庫花的時間可就長了
雖然
這個數字看起來大了些
但相比更為穩固的企業解決方案這還是個小型數據庫了
後者通常在一個數據庫內就包含了成千上萬條記錄
這時候不就死定了?采用SQL
你就可以很快地找出准確的記錄並且打開一個只包含該記錄的recordset
如下所示
Randomize
RNumber = Int(Rnd*
) +
SQL =
SELECT * FROM Customers WHERE ID =
& RNumber
set objRec = ObjConn
Execute(SQL)
Response
WriteRNumber &
=
& objRec(
ID
) &
& objRec(
c_email
)
不必寫出RNumber 和ID
你只需要檢查匹配情況即可
只要你對以上代碼的工作滿意
你自可按需操作
隨機
記錄
Recordset沒有包含其他內容
因此你很快就能找到你需要的記錄這樣就大大降低了處理時間
再談隨機數
現在你下定決心要搾干Random 函數的最後一滴油
那麼你可能會一次取出多條隨機記錄或者想采用一定隨機范圍內的記錄
把上面的標准Random 示例擴展一下就可以用SQL應對上面兩種情況了
為了取出幾條隨機選擇的記錄並存放在同一recordset內
你可以存儲三個隨機數
然後查詢數據庫獲得匹配這些數字的記錄
SQL =
SELECT * FROM Customers WHERE ID =
& RNumber &
OR ID =
& RNumber
&
OR ID =
& RNumber
假如你想選出
條記錄(也許是每次頁面裝載時的
條鏈接的列表)
你可以用BETWEEN 或者數學等式選出第一條記錄和適當數量的遞增記錄
這一操作可以通過好幾種方式來完成
但是 SELECT 語句只顯示一種可能(這裡的ID 是自動生成的號碼)
SQL =
SELECT * FROM Customers WHERE ID BETWEEN
& RNumber &
AND
& RNumber &
+
注意
以上代碼的執行目的不是檢查數據庫內是否有
條並發記錄
隨機讀取若干條記錄測試過
Access語法SELECT top * From 表名 ORDER BY Rnd(id)
Sql server語法select top n * from 表名 order by newid()
MySql語法Select * From 表名 Order By rand() Limit n
Access左連接語法(最近開發要用左連接Access幫助什麼都沒有網上沒有Access的SQL說明只有自己測試 現在記下以備後查)
語法Select tablefdtablefdtablefd From table left join table on tablefdtablefd where
使用SQL語句 用代替過長的字符串顯示
語法
SQL數據庫select case when len(field)> then left(field)+ else field end as news_namenews_id from tablename
Access數據庫SELECT iif(len(field)>left(field)+field) FROM tablename;
[] [] []
From:http://tw.wingwit.com/Article/program/SQL/201311/16331.html