一些很精妙的sql

2021-09-01 00:26:01 字數 2302 閱讀 2490

1、說明:複製表(只複製結構,源表名:a 新錶名:b) (access可用)

法一:select * into b from a where 1<>1

法二:select top 0 * into b from a

2、說明:拷貝表(拷貝資料,源表名:a 目標表名:b) (access可用)

insert into b(a, b, c) select d,e,f from b;

3、說明:跨資料庫之間表的拷貝(具體資料使用絕對路徑) (access可用)

insert into b(a, b, c) select d,e,f from b in 『具體資料庫』 where 條件

select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

5、說明:兩張關聯表,刪除主表中已經在副表中沒有的資訊

delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

6、說明:四表聯查問題:

select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

sql: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5

8、說明:選擇在每一組b值相同的資料中對應的a最大的記錄的所有資訊(類似這樣的用法可以用於論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

9、說明:包括所有在 tablea 中但不在 tableb和tablec 中的行並消除所有重複行而派生出乙個結果表

(select a from tablea ) except (select a from tableb) except (select a from tablec)

10、說明:隨機取出10條資料

select top 10 * from tablename order by newid()

11、說明:隨機選擇記錄

select newid()

12、說明:刪除重覆記錄???

delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

13、說明:列出資料庫裡所有的表名

select name from sysobjects where type='u'

[color=red]14、說明:列示type、vender、pcs欄位,以type欄位排列,case可以方便地實現多重選擇,類似select 中的case。

select type,sum(case vender when 'a' then pcs else 0 end),sum(case vender when 'c' then pcs else 0 end),sum(case vender when 'b' then pcs else 0 end) from tablename group by type

顯示結果:

type vender pcs

電腦 a 1

電腦 a 1

光碟 b 2

光碟 a 2

手機 b 3

手機 c 3[/color]

15、說明:初始化表table1

truncate table table1

truncate table 在功能上與不帶 where 子句的 delete 語句相同:二者均刪除表中的全部行。但 truncate table 比 delete 速度快,且使用的系統和事務日誌資源少。

delete 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。truncate table 通過釋放儲存表資料所用的資料頁來刪除資料,並且只在事務日誌中記錄頁的釋放。

truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 delete。如果要刪除表定義及其資料,請使用 drop table 語句。

如果有rollback語句,delete操作將被撤銷,但truncate不會撤銷。

我蒐集的一些精妙的SQL語句 整理更新

下面是我蒐集的一些精妙的sql語句 說明 複製表 只複製結構,源表名 a 新錶名 b select into b from a where 1 1說明 拷貝表 拷貝資料,源表名 a 目標表名 b insert into b a,b,c select d,e,f from b select a.tit...

一些比較精妙的巨集定義

今天在網上突然發現了下面幾個關於c 中的巨集定義的說明,回想下,好像在系統的 中也見過這些零散的定義,但沒有注意,看到別人總結了下,發現果然很有用,雖然不知有的道可用與否,但也不失為一種手段,所以就先把它摘抄下來,增加一點見識 1,防止乙個標頭檔案被重複包含 ifndef bodydef h def...

一些經典的SQL

表結構 部門deptid,父級部門parentdeptid,資料庫的每一條記錄都記錄了自身id和父級部門id,現在要從某個部門查詢其下屬部門生成一棵部門關係樹,sql如下 select so.orgid,so.parentdeptid,so.orgname from sys orginfo so s...