求SQL子查詢語句
不用子查詢就能出結果啊
select *,*,sum(money) as money from a, b where *=* and freeze='true' group by *,*
------------------
排序就在語句后加
order by * asc
你查不到結果?
這個*=1 是什么?不會是寫錯了吧
如果這個代表freeze的話。。。。一定要放到表b內!
==========================
Select *, *, Sum(*) As Money
From a, b
Where *=1 And *=* And *='true'
Group By *, *
order by * asc
sql查詢語句大全
:select * from table1 where 范圍 :insert into table1(field1,field2) values(value1,value2)delete from table1 where 范圍 :update table1 set field1=value1 where 范圍 :select * from table1 where field1 like '%value1%' 排序:select * from table1 order by field1,field2 [desc] 總數:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1[separator。
Sql經典語句
按姓氏筆畫排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //從少到多 數據庫加密:select encrypt('原始密碼')select pwdencrypt('原始密碼')select pwdcompare('原始密碼','加密后密碼') = 1--相同;否則不相同 encrypt('原始密碼')select pwdencrypt('原始密碼')select pwdcompare('原始密碼','加密后密碼') = 1--相同;否則不相同 取回表中字段:declare @list varchar(1000),@sql nvarchar(1000) select @list=@list+','+* from sysobjects a,syscolumns b where *=* and *='表A'set @sql='select '+right(@list,len(@list)-1)+' from 表A' exec (@sql) 查看硬盤分區:EXEC master..xp_fixeddrives 比較A,B表是否相等:if (select checksum_agg(binary_checksum(*)) from A) = (select checksum_agg(binary_checksum(*)) from B)print '相等'elseprint '不相等' 殺掉所有的事件探察器進程:DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM *cessesWHERE program_name IN('SQL profiler',N'SQL 事件探查器')EXEC sp_msforeach_worker '?' 記錄搜索:開頭到N條記錄Select Top N * From 表-------------------------------N到M條記錄(要有主索引ID)Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc----------------------------------N到結尾記錄Select Top N * From 表 Order by ID Desc案例例如1:一張表有一萬多條記錄,表的第一個字段 RecID 是自增長字段, 寫一個SQL語句, 找出表的第31到第40個記錄。
select top 10 recid from A where recid not in(select top 30 recid from A) 分析:如果這樣寫會產生某些問題,如果recid在表中存在邏輯索引。 select top 10 recid from A where……是從索引中查找,而后面的select top 30 recid from A則在數據表中查找,這樣由于索引中的順序有可能和數據表中的不一致,這樣就導致查詢到的不是本來的欲得到的數據。
解決方案 1, 用order by select top 30 recid from A order by ricid 如果該字段不是自增長,就會出現問題 2, 在那個子查詢中也加條件:select top 30 recid from A where recid>-1 例2:查詢表中的最后以條記錄,并不知道這個表共有多少數據,以及表結構。set @s = 'select top 1 * from T where pid not in (select top ' + str(@count-1) + ' pid from T)' print @s exec sp_executesql @s。
SQL教程之子查詢語句要注意什么
嵌套SELECT語句也叫子查詢,形如: SELECT name FROM bbc WHERE region = (SELECT region FROM bbc WHERE name = 'Brazil') 一個 SELECT 語句的查詢結果可以作為另一個語句的輸入值。
上面的SQL語句作用為獲得和'Brazil'(巴西)同屬一個地區的所有國家。 子查詢不但可以出現在Where子句中,也可以出現在from子句中,作為一個臨時表使用,也可以出現在select list中,作為一個字段值來返回。
本節我們僅介紹的Where子句中的子查詢。 在Where子句中使用子查詢,有一個在實際使用中容易犯的錯在這里說明一下。
通常,就像上面的例子一樣,嵌套的語句總是和一個值進行比較。 語句 (SELECT region FROM bbc WHERE name = 'Brazil') 應該僅返回一個地區,即 'Americas'。
但如果我們在表中再插入一條地區為歐洲,國家名稱為Brazil的記錄,那會發生什么情況? 這將會導致語句的運行時錯誤。因為這個SQL語句的語法是正確的,所以數據庫引擎就開始執行,但當執行到外部的語句時就出錯了。
因為這時的外部語句就像好像是 SELECT name FROM bbc WHERE region = ('Americas', 'Europe'),這個語句當然報錯了。 那么有沒有辦法解決這個問題呢,當然有。
有一些SQL查詢條件允許對列表值(即多個值)進行操作。 例如"IN" 操作符,可以測試某個值是否在一個列表中。
下面的語句就可以安全的執行而不出錯,不管表中有多少條包含Brazils的記錄 SELECT name FROM bbc WHERE region IN (SELECT region FROM bbc WHERE name = 'Brazil') OK, 讓我們再看看一些具體的實例, 一、給出人口多于Russia(俄國)的國家名稱 SELECT name FROM bbcWHERE population>(SELECT population FROM bbcWHERE name='Russia') 二、給出'India'(印度), 'Iran'(伊朗)所在地區的所有國家的所有信息 SELECT * FROM bbcWHERE region IN(SELECT region FROM bbcWHERE name IN ('India','Iran')) 三、給出人均GDP超過'United Kingdom'(英國)的歐洲國家。 SELECT name FROM bbcWHERE region='Europe' AND gdp/population >(SELECT gdp/population FROM bbcWHERE name='United Kingdom')。
sql語句大全
sp_helpdb ----------查本服務器中所有數據庫 可跟庫名 例:sp_helpdb 庫名 ------------------------------------------------------------- sp_databases -------------查看本服務器中可用的數據庫 -------------------------------------------------------------------- sp_helpfile -------------------查看當前工作著的數據庫 ----------------------------------------------------------- sp_helpfilegroup ---------------查看當前工作著的組的信息。
可加參數,跟組名 例:sp_helpdb 庫名 ---------------------------------------------------------------- sp_renamedb -----------改數據庫名 例:sp_renamedb 舊庫名,新庫名 ---------------------------------------------------------------- select groupname from sysfilegroups where status=24 ---------查看文件組 =8是查只讀文件組 =16是查默認文件組 =24是查即只讀又默認 --------------------------------------------------------------------------- sp_dboption ----------修改數據庫選項值 例:sp_dboption 庫名 選項 值 值決定真假 一般用:true/faule 或off/on表示 選項一般常用為:use only(數據庫擁有者)single user(單一用戶)read only(只讀) -------------------------------------------------------------------------- dbcc shrinkdatabase ---------收縮數據庫 例:dbcc shrinkdatabase (庫名,10) 收縮庫,剩余空間保留10%,后面如果不加notruncate,則釋放空間操作系統, 加truncateonly,歸還空間給操作系統,但忽略所給的百分比數值。 ---------------------------------------------------------------------- dbcc shrinkfile ---------收縮文件 用法與ddcc shrinkdatabase相同。
---------------------------------------------------------------------- alter database ---------------修改數據庫 用法:這是起始句,告訴要做的是修改數據庫,然后再接要做什么工作。每次只做一項工作 alter database 庫名 add file 文件名。
.to filegroup 文件組名 ----------------增加庫文件,格式與建庫時括號里指定大小時的格式一樣 add log file 文件名 -------------增加日志文件 remove file 文件名 ---------刪除庫內的文件 add filegroup 文件組名 -----------增加一個文件組 modify file 文件名 -------------修改文件屬性 modify filegroup 組名 ------------修改文件組屬性 --------------------------------------------------------------------------- drop database --------------刪除數據庫 例:drop database 庫名1,庫名2 ---------可同時刪除兩個庫 ------------------------------------------------------------------------ create table 表名 (列名 類型, 列名 類型) -------------------建立表 -------------------------------------------------------------------- select * from 表名 ---------查詢表結構 -------------------------------------------------------------------- select @@dbts ----------查詢最后一次操作 -------------------------------------------------------------------- insert into 表名 (列名,列名) values (變量,變量。..) ------------向表中插入數據 如省略列名,則必須把每列的變量填全,不可缺少。
可以省略 into -------------------------------------------------------------------- sp_addtype 自定義類型名 系統類型名 -------用戶自定義類型 -------------------------------------------------------------------- sp_droptype 自定義類型名 -----------刪除自定義類型 如有數據庫正在使用該自定義類型,則不能刪除 -------------------------------------------------------------------- alter table ---------修改表結構 用法: alter table 表名 alter column 列名 類型 ---------修改列的類型 drop column 列名 --------刪除列 add (column) 列名 --------增加列,實際用時不加 column ----------------------------------------------------------------- sp_help -------------查看數據庫中對象信息 用法: sp_help 表名 ---------------查表的信息 或 sp_help 庫名 --------------查庫信息 后面可以跟庫名或者表名,是查數據庫或者表的信息 ----------------------------------------------------------------- sp_spaceused --------查看對象占用的空間信息 用法: sp_spaceused ----------查當前庫占用空間信息 或 sp_spaceused 表名 ----------查指定表占用空間信息 后面可以加表名查看表占空間信息。如不加,則查看當前數據庫。
------------------------------------------------------------------ sp_depends ------------查看對象的相關性 用法: sp_depends 表名 -----------后面加表名 ------------------------------------------------------------------ sp_rename ---------------重新命名 用法: sp_rename 舊表名,新表名 ---------改表名 或 sp_rename '表名.舊列名','新列名' 'column' -------修改列名 -------------------------------------------------------------------- create index --------------創建索引 用法: create index 索引名 on 表名 (列名) ------創建索引 或: create unique clustered index 索引名 on 表名 (列名) ------創建簇集唯一索引 unique是建唯一索引 clustered是建簇集索引 ---非簇集索引用:nonclustered ---------------------------------------------------------------------- select top ---------查表中前幾行 用法: select top 3 * from 表名 -------查表中前三行 或: select top 10 percent * from 表名 -------顯示表中前10%數據 ------------加入percent是百分比的意思。只以大于的最小整數,無小數 ---------------------------------------------------------------------- select 列名,列名,列名 from 表名 -------顯示表中特定的列 ---------------------------------------------------------------------- 。
SQL語句大全
sp_helpdb ----------查本服務器中所有數據庫 可跟庫名例:sp_helpdb 庫名-------------------------------------------------------------sp_databases -------------查看本服務器中可用的數據庫--------------------------------------------------------------------sp_helpfile -------------------查看當前工作著的數據庫-----------------------------------------------------------sp_helpfilegroup ---------------查看當前工作著的組的信息。
可加參數,跟組名例:sp_helpdb 庫名----------------------------------------------------------------sp_renamedb -----------改數據庫名例:sp_renamedb 舊庫名,新庫名----------------------------------------------------------------select groupname from sysfilegroups where status=24---------查看文件組 =8是查只讀文件組 =16是查默認文件組 =24是查即只讀又默認---------------------------------------------------------------------------sp_dboption ----------修改數據庫選項值例:sp_dboption 庫名 選項 值 值決定真假 一般用:true/faule 或off/on表示選項一般常用為:use only(數據庫擁有者)single user(單一用戶)read only(只讀)--------------------------------------------------------------------------dbcc shrinkdatabase ---------收縮數據庫例:dbcc shrinkdatabase (庫名,10)收縮庫,剩余空間保留10%,后面如果不加notruncate,則釋放空間操作系統,加truncateonly,歸還空間給操作系統,但忽略所給的百分比數值。----------------------------------------------------------------------dbcc shrinkfile ---------收縮文件用法與ddcc shrinkdatabase相同。
----------------------------------------------------------------------alter database ---------------修改數據庫用法:這是起始句,告訴要做的是修改數據庫,然后再接要做什么工作。每次只做一項工作alter database 庫名add file 文件名。
.to filegroup 文件組名----------------增加庫文件,格式與建庫時括號里指定大小時的格式一樣add log file 文件名 -------------增加日志文件remove file 文件名 ---------刪除庫內的文件add filegroup 文件組名 -----------增加一個文件組modify file 文件名 -------------修改文件屬性modify filegroup 組名 ------------修改文件組屬性---------------------------------------------------------------------------drop database --------------刪除數據庫例:drop database 庫名1,庫名2 ---------可同時刪除兩個庫------------------------------------------------------------------------create table 表名(列名 類型,列名 類型) -------------------建立表--------------------------------------------------------------------select * from 表名 ---------查詢表結構--------------------------------------------------------------------select @@dbts ----------查詢最后一次操作--------------------------------------------------------------------insert into 表名(列名,列名)values (變量,變量。..) ------------向表中插入數據如省略列名,則必須把每列的變量填全,不可缺少。
可以省略 into--------------------------------------------------------------------sp_addtype 自定義類型名 系統類型名 -------用戶自定義類型--------------------------------------------------------------------sp_droptype 自定義類型名 -----------刪除自定義類型如有數據庫正在使用該自定義類型,則不能刪除--------------------------------------------------------------------alter table ---------修改表結構用法: alter table 表名alter column 列名 類型 ---------修改列的類型drop column 列名 --------刪除列add (column) 列名 --------增加列,實際用時不加 column-----------------------------------------------------------------sp_help -------------查看數據庫中對象信息用法: sp_help 表名 ---------------查表的信息或 sp_help 庫名 --------------查庫信息后面可以跟庫名或者表名,是查數據庫或者表的信息-----------------------------------------------------------------sp_spaceused --------查看對象占用的空間信息用法: sp_spaceused ----------查當前庫占用空間信息或 sp_spaceused 表名 ----------查指定表占用空間信息后面可以加表名查看表占空間信息。如不加,則查看當前數據庫。
------------------------------------------------------------------sp_depends ------------查看對象的相關性用法: sp_depends 表名 -----------后面加表名------------------------------------------------------------------sp_rename ---------------重新命名用法: sp_rename 舊表名,新表名 ---------改表名或 sp_rename '表名.舊列名','新列名' 'column' -------修改列名--------------------------------------------------------------------create index --------------創建索引用法: create index 索引名 on 表名 (列名) ------創建索引或: create unique clustered index 索引名 on 表名 (列名)------創建簇集唯一索引 unique是建唯一索引 clustered是建簇集索引---非簇集索引用:nonclustered----------------------------------------------------------------------select top ---------查表中前幾行用法: select top 3 * from 表名 -------查表中前三行或: select top 10 percent * from 表名 -------顯示表中前10%數據------------加入percent是百分比的意思。只以大于的最小整數,無小數----------------------------------------------------------------------select 列名,列名,列名 from 表名 -------顯示表中特定的列----------------------------------------------------------------------select *,列名 from 表名 ----------查詢表中所有,后面再加。