新聞中心
此文章主要是向大家講述的是SQL server 動(dòng)態(tài)查詢,與獲取想得到的返回值的結(jié)果,在編寫sql語句或是存儲(chǔ)過程的實(shí)際操作過程中,一般的情況下都會(huì)遇到語句中表名或某一字段名不確定,要根據(jù)條件來。

創(chuàng)新互聯(lián)公司是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、重慶小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10多年以來,已經(jīng)為近千家成都木托盤各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的近千家客戶與我們一路同行,見證我們的成長(zhǎng);未來,我們一起分享成功的喜悅。
這時(shí),我們可考慮用SQL 提供的sp_executesql 函數(shù),,他可執(zhí)行動(dòng)態(tài)的修改,刪除,查詢功能,至于此函數(shù)的詳細(xì)解釋可到sql幫助文檔中去查看,下面我將舉一個(gè)SQL server 動(dòng)態(tài)查詢的列子,包括表名及想查詢的字段均不確定:
- tab:
- (ID int) (A numeric(9,2)) (B numeric(9,2))
- 1 20.30 33.12
- 2 34.32 22.66
- 3 45.54 99.19
完成任務(wù):
在不確定表名,及查詢字段的情況下,根據(jù)傳入的表名及字段及查詢條件,獲得對(duì)應(yīng)返回結(jié)果:
1.seq條件
2.字段名稱(A或B)
3.表名
要求函數(shù)返回值類型為numeric(9,2), 列如根據(jù)輸入?yún)?shù)2取對(duì)應(yīng)字段的值返回
做法如下:
- declare @tab varchar(10), @rowname varchar(10) ,@seq int
- declare @sql Nvarchar(1000)
- declare @v numeric(9,2)
- set @rowname='A';
- set @seq=2 ;
- set @tab='tab';
- set @sql='select @a='+@rowname+' from '+@tab+' where id='+rtrim(@seq)
- exec sp_executesql @sql,N'@a numeric(9,2) output',@v output
- select @v
結(jié)果
34.32
提醒:
對(duì)于動(dòng)態(tài)表名及字段使用非常簡(jiǎn)單,但獲取結(jié)果使用動(dòng)態(tài)語句是有一定規(guī)則的,如上面的列子,需要把表名聲明成Nvarchar的,然后執(zhí)行動(dòng)態(tài)語句時(shí),聲明其動(dòng)態(tài)語句中變量前也要加N ,如N'@a
- numeric(9,2) output'
以上的相關(guān)內(nèi)容就是對(duì)SQL server 動(dòng)態(tài)查詢的介紹,望你能有所收獲。
網(wǎng)站欄目:SQLserver動(dòng)態(tài)查詢的實(shí)際操作步驟
路徑分享:http://fisionsoft.com.cn/article/djisicj.html


咨詢
建站咨詢
