久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

sqlserver中怎么利用存儲過程去除重復行

165次閱讀
沒有評論

共計 2697 個字符,預計需要花費 7 分鐘才能閱讀完成。

這篇文章給大家介紹 sqlserver 中怎么利用存儲過程去除重復行,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

代碼如下:
ALTER procedure [dbo].[PROC_ITEMMASTER_GETUNIQUE] @PAGEINDEX INT,@uid int,@itemnumber varchar(50) AS begin tran – 開始事務 drop table [ItemMaster].[dbo].[testim] – 刪除表 – 把不重復記錄轉存到 testim 中 select * into [ItemMaster].[dbo].[testim] from [ItemMaster].[dbo].[dat_item_master] where item_uid in(select min(item_uid) as item_uid from [ItemMaster].[dbo].[dat_item_master] group by item_number) and status=0 select top 10 * from [ItemMaster].[dbo].[testim] where item_uid not in (select top (10*(@PAGEINDEX-1)) item_uid from [ItemMaster].[dbo].[testim]) and owneruid=@uid and item_number like @itemnumber+ % – 判斷是否出錯 if @@error 0 begin rollback tran – 出錯則回滾 end else begin – 否則提前事務 commit tran end

我的數據是這樣的:因為 item_uid 是標識列,item_number 有重復的,我想過濾成這樣:順帶說幾個在編程的時候遇到的小問題 1. 程序 出現 Could not find stored procedure 找不到這個存儲過程 因為我的程序數據庫有四個,而默認連接是 A,但實際要執行 B 庫里的存儲過程,導致出錯,解決辦法 1:可在 A 里面建個一樣的存儲過程 2:在執行連接的時候,替換下數據庫就行了 2. asp.net/C# 將存儲過程中返回的數據集,填充到 dataset/datatable 復制代碼 代碼如下:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[ SolutionSQLServer].ToString()); SqlCommand cmd = new SqlCommand(Test ,conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(@MaxId , SqlDbType.Int).Value = 12000; SqlDataAdapter sda = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); sda.Fill(dt);

在這感謝 http://www.cnblogs.com/liujuncm5/archive/2009/08/31/1557569.html 3. 在存儲過程里面,寫 SQL 語句不能動態不加 order by 功能 比如復制代碼 代碼如下:
–·@new_orderby 是傳入參數,不能這樣寫 select top (10*(2-1)) item_uid from testim order by @new_orderby – 執行這個的時候,SQL 會出現 The SELECT item identified by the ORDER BY number 1 contains a variable as part of the expression identifying a column position. Variables are only allowed when ordering by an expression referencing a column name.

不過我找到解決辦法,不過很麻煩,

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=9328(第二個回答用 sql 進行連接)

http://databases.aspfaq.com/database/how-do-i-use-a-variable-in-an-order-by-clause.html(用 case end 也行)

4. select into 和 insert into select 兩種復制文句(這里感謝 http://www.cnblogs.com/freshman0216/archive/2008/08/15/1268316.html)

1.INSERT INTO SELECT 語句

語句形式為:Insert into Table2(field1,field2,…) select value1,value2,… from Table1

要求目標表 Table2 必須存在,由于目標表 Table2 已經存在,所以我們除了插入源表 Table1 的字段外,還可以插入常量。

2.SELECT INTO FROM 語句

語句形式為:SELECT vale1, value2 into Table2 from Table1

要求目標表 Table2 不存在,因為在插入時會自動創建表 Table2,并將 Table1 中指定字段數據復制到 Table2 中。

5. 順便復習下常用的 SQL 方法語句復制代碼 代碼如下:
declare @name varchar(200) – 聲明變量 set @name= abcd;def – 賦值 print exec len : +Convert(varchar(10),Len(@name)) –convert(type,value) 轉換,Len(value) 獲取大小 print exec charindex: +Convert(varchar(10),CharIndex(e ,@name))–CharIndex(find,value) 在 value 中查找 find 的位置 print not replace: +@name print exec replace: +Replace(@name, ,) – 用 replace 替換 print exec substring: +Substring(@name,0,3)– 用 substring 截取 print @@RowCount – 返回上一行代碼受影響的行數

關于 sqlserver 中怎么利用存儲過程去除重復行就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計2697字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 重庆市| 二连浩特市| 铁岭市| 曲水县| 扶余县| 白水县| 子长县| 哈密市| 新干县| 辽源市| 大关县| 玉林市| 延庆县| 裕民县| 阿尔山市| 古丈县| 洛隆县| 库尔勒市| 垦利县| 靖江市| 毕节市| 永川市| 巴彦县| 吉林市| 隆回县| 井陉县| 青龙| 皋兰县| 洱源县| 孙吴县| 墨玉县| 农安县| 庆元县| 葫芦岛市| 育儿| 象山县| 大余县| 舒城县| 阜新市| 惠来县| 新乡县|