sql語句查詢結果
1. sql server如何用print語句輸出查詢結果
1、可以使用如下程序將元組的多個屬性輸出
DECLARE @t1 NVARCHAR(100) --聲明一個變數,接收查詢結果值。
SELECT @t1=com_name FROM com WHERE cust_id='20100001' --查詢
PRINT @t1 --輸出結果值。
SELECT @t1=com_name FROM com WHERE cust_id='1405892'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='569454'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='647328'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='1221889'
PRINT @t1
SELECT @t1=com_name FROM com WHERE cust_id='1255607'
PRINT @t1
2、--向上邊的批量select查詢,用print輸出後,在消息中,還能查看結果。如果不用print,就需要一個一個的復制查詢結果。
3、--上邊的語句,是在excel和word中拼接和替換值,得到的批量查詢語句。

(1)sql語句查詢結果擴展閱讀:
1、不帶輸出項的print即為輸出一個空行,如果之前的print語句輸出項的最後用「,」或「;」,則表示其輸出是在同一行上。其後面的空的print語句用來消除前面的print語句一直在同一行上輸出的效果,使其後面的輸出是在下一行。
Print()
功能
以當前字體在打開的列印作業中列印一行或多行文本。
語法Print(printjobnumber,{tab1,}string{,tab2})
例如用在編程中:
定義一個整型數組,將50個隨機的兩位正整數從下標1開始放入該數組中,求出該數組中具有偶數值的偶數下標元素之和,同時輸出該數組中所有元素的值,每行輸出10個值。
dim a(50) asinteger
dim i,s asinteger
randomize
s=0
for i=1 to 50
a(i)=int(rnd()*99)+1
if a(i) mod 2=0 then s=s+i
next i
print "s=";s
for i=1 to 50
print a(i);
if i mod 10=0 then print
next i
2、SQL中Print語句用於調試,所以,它輸出的內容屬於調試信息,類似於出錯信息。
3、在不同的編程中,獲取調試信息的,方法不同。此外,很少有人用Print作正常的輸出,當然,在調試過程中用除外。要輸出時,一般用Select語句來得方便一些。多組信息需要輸出時,先生成一個臨時表,然後向臨時表添加,最後把總的臨時表數據向前端推送即可。
2. Mysql用sql語句查詢結果
關於sql
server
sql語句查詢分頁數據的解決方案:
要求選取
tbllendlist
中
第3000頁的記錄,每一頁100條記錄。-------------------------
----------
方法1:
----------
select
top
100
*
from
tbllendlist
where
fldserialno
not
in
(
select
top
300100
fldserialno
from
tbllendlist
order
by
fldserialno
)
order
by
fldserialno
----------
方法2:
----------
select
top
100
*
from
tbllendlist
where
(fldserialno
>
(select
max(fldserialno)
from
(select
top
300100
fldserialno
from
tbllendlist
order
by
fldserialno)
as
t))
order
by
fldserialno
方法1執行速度比較快!
不過,這種做法還是很麻煩,強烈期待微軟發明新的可分頁的sql語句來!!!!
sql
server
---------------------------------------------------------------------------------
從資料庫表中的第m條記錄開始取n條記錄,利用top關鍵字:注意如果select語句中既有top,又有order
by,則是從排序好的結果集中選擇:
select
*
from
(
select
top
n
*
from
(select
top
(m
+
n
-
1)
*
from
表名稱
order
by
主鍵
desc)
t1
)
t2
order
by
主鍵
asc
例如從表sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select
*
from
(
select
top
20
*
from
(select
top
29
*
from
sys_option
order
by
sys_id
desc)
t1)
t2
order
by
sys_id
asc
oralce資料庫--------------------------------------------------------------------------------
從資料庫表中第m條記錄開始檢索n條記錄
select
*
from
(select
rownum
r,t1.*
from
表名稱
t1
where
rownum
<
m
+
n)
t2
where
t2.r
>=
m
例如從表sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select
*
from
(select
rownum
r,t1.*
from
sys_option
where
rownum
<
30
)
t2
where
t2.r
>=
10
如果你對oracle資料庫分頁不是很熟悉的話,本頁後面有專門對oracle分頁技術的講解。
my
sql資料庫---------------------------------------------------------------------------------------------
my
sql資料庫最簡單,是利用mysql的limit函數,limit
[offset,]
rows從資料庫表中m條記錄開始檢索n條記錄的語句為:
select
*
from
表名稱
limit
m,n
例如從表sys_option(主鍵為sys_id)中從10條記錄還是檢索20條記錄,語句如下:
select
*
from
sys_option
limit
10,20
tag:
racle
racle
server
server
server
sql
sql
3. SQL如何合並多個查詢結果
1.兩個不同的表進行查詢,需要把結果合並,
比如table1的列為 id, user_id, type_id,pro_id;
table2的列為 id,user_id,collect_id;分別如下圖所示
table1:

總結:其實就是把對應的列補充到沒有該列的表中,在例子中就是把collect_id補充到table1中,
把type_id,pro_id補充到table2中。
4. SQL查詢語句
一、簡單查詢語句
1. 查看錶結構
SQL>DESC emp;
2. 查詢所有列
SQL>SELECT * FROM emp;
3. 查詢指定列
SQL>SELECT empmo, ename, mgr FROM emp;
SQL>SELECT DISTINCT mgr FROM emp; 只顯示結果不同的項
4. 查詢指定行
SQL>SELECT * FROM emp WHERE job='CLERK';
5. 使用算術表達式
SQL>SELECT ename, sal*13+nvl(comm,0) FROM emp;
nvl(comm,1)的意思是,如果comm中有值,則nvl(comm,1)=comm; comm中無值,則nvl(comm,1)=0。
SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal為別名,可按別名排序)
SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
6. 使用like操作符(%,_)
%表示一個或多個字元,_表示一個字元,[charlist]表示字元列中的任何單一字元,[^charlist]或者[!charlist]不在字元列中的任何單一字元。
SQL>SELECT * FROM emp WHERE ename like 'S__T%';
7. 在where條件中使用In
SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
8. 查詢欄位內容為空/非空的語句
SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
9. 使用邏輯操作符號
SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
10. 將查詢結果按欄位的值進行排序
SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部門升序,並按薪酬降序)
二、復雜查詢
1. 數據分組(max,min,avg,sum,count)
SQL>SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp;
SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));
SQL>SELEC COUNT(*) FROM emp;
2. group by(用於對查詢結果的分組統計) 和 having子句(用於限制分組顯示結果)
SQL>SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno;
SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
對於數據分組的總結:
a. 分組函數只能出現在選擇列表、having、order by子句中(不能出現在where中)
b. 如果select語句中同時包含有group by, having, order by,那麼它們的順序是group by, having, order by。
c. 在選擇列中如果有列、表達式和分組函數,那麼這些列和表達式必須出現在group by子句中,否則就是會出錯。
使用group by不是使用having的前提條件。
3. 多表查詢
SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno;
SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;
4. 自連接(指同一張表的連接查詢)
SQL>SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;
5. 子查詢(嵌入到其他sql語句中的select語句,也叫嵌套查詢)
5.1 單行子查詢
SQL>SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp where ename='SMITH');查詢表中與smith同部門的人員名字。因為返回結果只有一行,所以用“=”連接子查詢語句
5.2 多行子查詢
SQL>SELECT ename,job,sal,deptno from emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno=10);查詢表中與部門號為10的工作相同的員工的姓名、工作、薪水、部門號。因為返回結果有多行,所以用“IN”連接子查詢語句。
in與exists的區別: exists() 後面的子查詢被稱做相關子查詢,它是不返回列表的值的。只是返回一個ture或false的結果,其運行方式是先運行主查詢一次,再去子查詢里查詢與其對 應的`結果。如果是ture則輸出,反之則不輸出。再根據主查詢中的每一行去子查詢里去查詢。in()後面的子查詢,是返回結果集的,換句話說執行次序和 exists()不一樣。子查詢先產生結果集,然後主查詢再去結果集里去找符合要求的欄位列表去。符合要求的輸出,反之則不輸出。
5.3 使用ALL
SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);查詢工資比部門號為30號的所有員工工資都高的員工的姓名、薪水和部門號。以上兩個語句在功能上是一樣的,但執行效率上,函數會高 得多。
5.4 使用ANY
SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MIN(sal) FROM emp WHERE deptno=30);查詢工資比部門號為30號的任意一個員工工資高(只要比某一員工工資高即可)的員工的姓名、薪水和部門號。以上兩個語句在功能上是 一樣的,但執行效率上,函數會高得多。
5.5 多列子查詢
SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename='SMITH');
5.6 在from子句中使用子查詢
SQL>SELECT emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal FROM emp,(SELECT emp.deptno,avg(emp.sal) avgsal FROM emp GROUP BY emp.deptno) t_avgsal where emp.deptno=t_avgsal.deptno AND emp.sal>t_avgsal.avgsal ORDER BY emp.deptno;
5.7 分頁查詢
資料庫的每行數據都有一個對應的行號,稱為rownum.
SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2 WHERE rn>=6;
指定查詢列、查詢結果排序等,都只需要修改最里層的子查詢即可。
5.8 用查詢結果創建新表
SQL>CREATE TABLE mytable (id,name,sal,job,deptno) AS SELECT empno,ename,sal,job,deptno FROM emp;
5.9 合並查詢(union 並集, intersect 交集, union all 並集+交集, minus差集)
SQL>SELECT ename, sal, job FROM emp WHERE sal>2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename, sal, job FROM emp WHERE job='MANAGER';
合並查詢的執行效率遠高於and,or等邏輯查詢。
5.10 使用子查詢插入數據
SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2)); 先建一張空表;
SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10; 再將emp表中部門號為10的數據插入到新表myEmp中,實現數據的批量查詢。
5.11 使用了查詢更新表中的數據
SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename='SMITH') WHERE ename='SCOTT';
5. 使用SQL語句如何對Excel工作表數據進行查詢
SQL語句是一種標準的資料庫語言,其可以在任何關系型資料庫管理系統中使用。在 Excel 表格中,使用SQL語句可以實現對Excel工作表數據進行查詢的 方法 。以下是我為您帶來的關於使用SQL語句對Excel工作表數據進行查詢,希望對您有所幫助。
使用SQL語句對Excel工作表數據進行查詢1、啟動Excel並打開工作簿,在這個工作簿中,工作表Sheet1放置商品信息記錄,如圖1所示;工作表Sheet2用於對商品記錄進行查詢,其結構如圖2所示。
圖1放置商品信息記錄的工作表
圖2用於商品記錄查詢的工作表
2、打開Visual Basic編輯器,在工程資源管理器中插入一個模塊,在模塊的「代碼」窗口中輸入如下程序代碼:
Sub CheckData()
Dim cnn As ADODB.Connection '聲明連接對象變數
Dim rs As ADODB.Recordset '聲明記錄集對象
Dim strSql As String
Dim str As String
On Error Resume Next
Set cnn=CreateObject("ADODB.Connection") '創建連接對象變數
Set rs=CreateObject("ADODB.Recordset") '創建記錄集對象記錄
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;"_&"Extended Properties=Excel 8.0;"_&"Data Source="&ThisWorkbook.FullName
str=ActiveSheet.Range("B1").Value '獲取當前單元格內容
strSql="Select*FROM[Sheet1$]Where商品like '%"&str&"%'"'創建數據篩選命令
rs.Open strSql,cnn,adOpenStatic
With ActiveSheet
.Range("A4:D100").ClearContents '清除單元格記錄
.Range("A4").CopyFromRecordset rs '復制篩選結果
End With
rs.Close
cnn.Close
Set rs=Nothing
Set cnn=Nothing
End Sub
3、首先在Sheet2工作表中輸入需要查詢的商品名稱,如圖3所示。運行CheckData()過程,在Sheet2工作表中將列出查詢結果,如圖4所示。
圖3輸入商品名稱
圖4獲得查詢結果
使用SQL語句如何對Excel工作表數據進行查詢相關 文章 :
★ excel2007使用sql語句查詢的方法
★ excel2007寫sql語句的教程
★ 如何將excel數據導入sql的方法
★ Excel2013使用教程基礎
★ excel數據導入SQL資料庫的教程
★ excel表導入sql資料庫的教程
★ excel導入sqlserver資料庫方法
★ 計算機英語
★ excel表格製作教程
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm..com/hm.js?"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();6. 用sql語句怎麼從資料庫中提取結果
1、我們首先在創建一個WEB頁面,用EF導入資料庫中的一個實體模型,然後創建一個按鈕,點擊按鈕以後用EF向資料庫中執行insert操作。
2、下面我們打開資料庫,然後選擇資料庫工具欄中的工具,然後選擇Profile工具。
3、登錄了以後,你會發現牽扯到資料庫的所以語句執行都在這里顯示出來了。
4、然後我們點擊我們項目中的「添加」按鈕,然後在我們的Profile監聽中查看一下他進行了哪些的操作,我們用的登錄用戶是sa,通過這個我們可以看到語句執行時間。
5、執行的SQL程序。
6、EF自動執行了插入的操作,這些封裝都在EntityFramework對應的dll文件中。
7. SQL查詢語句大全(一)
Select --從資料庫表中檢索數據行和列
Insert --向資料庫表添加新數據行
Delete --從資料庫表中刪除數據行
Update --更新資料庫表中的數據
Create TABLE --創建一個資料庫表
Drop TABLE --從資料庫中刪除表
Alter TABLE --修改資料庫表結構
Create VIEW --創建一個視圖
Drop VIEW --從資料庫中刪除視圖
Create INDEX --為資料庫表創建一個索引
Drop INDEX --從資料庫中刪除索引
Create PROCEDURE --創建一個存儲過程
Drop PROCEDURE --從資料庫中刪除存儲過程
Create TRIGGER --創建一個觸發器
Drop TRIGGER --從資料庫中刪除觸發器
Create SCHEMA --向資料庫添加一個新模式
Drop SCHEMA --從資料庫中刪除一個模式
Create DOMAIN --創建一個數據值域
Alter DOMAIN --改變域定義
Drop DOMAIN --從資料庫中刪除一個域
GRANT --授予用戶訪問許可權
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問許可權
COMMIT --結束當前事務
ROLLBACK --中止當前事務
SET TRANSACTION --定義當前事務數據訪問特徵
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計劃
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行准備 SQL 語句
EXECUTE --動態地執行 SQL 語句
DESCRIBE --描述准備好的查詢
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---必須以@@開頭
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print 'x > y' --列印字元串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'
use pangu
update employee
set e_wage =
case
when job_level = 』1』 then e_wage*1.08
when job_level = 』2』 then e_wage*1.07
when job_level = 』3』 then e_wage*1.06
else e_wage*1.05
end
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --列印變數 x 的值
while @y < 3
begin
select @c =100*@x+ @y
print @c --列印變數 c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--例 等待 1 小時 2 分零 3 秒後才執行 Select 語句
waitfor delay 』01:02:03』
select * from employee
--例 等到晚上 11 點零 8 分後才執行 Select 語句
waitfor time 』23:08:00』
select * from employee
select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
stockname = 'str_name'
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的范圍)
stockname like '[^F-M]%' --------- (^排除指定范圍)
--------- 只能在使用 like 關鍵字的 where 子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stocksex = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
order by 1,2 --------- by 列號 stockname = (select stockname from stock_information where stockid = 4)
--------- 子查詢
--------- 除非能確保內層 select 只返回一個行的值,
--------- 否則應在外層 where 子句中用一個 in 限定符
select distinct column_name form table_name --------- distinct 指定檢索獨有的列值,不重復
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 將表按行分組,指定列中有相同的值
having count(*) = 2 --------- having 選定指定的組
select *
from table1, table2
where table1.id *= table2.id -------- 左外部連接,table1 中有的而 table2 中沒有得以 null 表示
table1.id =* table2.id -------- 右外部連接
select stockname from table1
union [all] ----- union 合並查詢結果集,all-保留重復行
select stockname from table2
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
value (select Stockname , Stocknumber from Stock_table2)---value 為 select 語句
update table_name set Stockname = "xxx" [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
delete from table_name where Stockid = 3
truncate table_name ----------- 刪除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全刪除表
alter table database.owner.table_name add column_name char(2) null .....
sp_help table_name ---- 顯示表已有特徵
create table table_name (name char(20), age smallint, lname varchar(30))
insert into table_name select ......... ----- 實現刪除列的方法(創建新表)
alter table table_name drop constraint Stockname_default ---- 刪除 Stockname 的 default 約束
8. sql語句的一次查詢結果是
SQL語言具有數據定義、數據操縱和數據控制的功能,它的一次查詢的結果是一個表
9. sql語句統計查詢結果數量怎麼寫
可以通過count函數來實現。
sqlOne:select * from tablename1 where id>5;此語句查詢出來多條記錄,之後看做一個新的表。
sqlTwo:select conut(*) from (select * from tablename1 where id>5) as tablename2;此語句即可查詢出來統計的記錄條數。
備註:以上方法通用於所有的數據統計,如果是單表查詢,可以直接通過:「select count( *) from tablename1 where id>5"的形式查詢出結果。
