婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > sqlserver利用存儲過程去除重復行的sql語句

sqlserver利用存儲過程去除重復行的sql語句

熱門標簽:貴州房產智能外呼系統供應商 電銷外呼有錄音系統有哪些 百度地圖標注改顏色 申請400電話在哪辦理流程 一個導航軟件能用幾個地圖標注點 小e電話機器人 鎮江網路外呼系統供應商 外呼運營商線路收費 臨沂智能電銷機器人加盟哪家好
還是先上代碼吧 ,可以先看 SQL語句去掉重復記錄,獲取重復記錄
復制代碼 代碼如下:

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 --返回上一行代碼受影響的行數

作者:chenhuzi

您可能感興趣的文章:
  • 解析mysql中:單表distinct、多表group by查詢去除重復記錄
  • sqlserver 用戶權限管理,LINQ去除它的重復菜單項
  • mysql SELECT語句去除某個字段的重復信息
  • Mysql刪除重復的數據 Mysql數據去重復
  • MySQL中distinct語句去查詢重復記錄及相關的性能討論
  • SQL高級應用之同服務器上復制表到另一數據庫中并實現去重復
  • SQL分組排序去重復的小實例
  • oracle sql 去重復記錄不用distinct如何實現
  • SQL語句去掉重復記錄,獲取重復記錄
  • SQL去除重復記錄(七種)

標簽:澳門 日照 晉城 延邊 三明 合肥 保定 嘉興

巨人網絡通訊聲明:本文標題《sqlserver利用存儲過程去除重復行的sql語句》,本文關鍵詞  sqlserver,利用,存儲,過程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sqlserver利用存儲過程去除重復行的sql語句》相關的同類信息!
  • 本頁收集關于sqlserver利用存儲過程去除重復行的sql語句的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 枣庄市| 格尔木市| 当涂县| 霍州市| 永兴县| 贺兰县| 佛教| 乌什县| 农安县| 博乐市| 平顶山市| 兴山县| 罗源县| 大新县| 承德县| 洛宁县| 赤峰市| 宾川县| 亳州市| 乡宁县| 达拉特旗| 和田县| 海安县| 大方县| 上杭县| 大安市| 卢湾区| 浏阳市| 东乡| 湖口县| 东阿县| 眉山市| 通许县| 平顶山市| 祁东县| 西乌珠穆沁旗| 远安县| 肇州县| 临漳县| 宁陵县| 麦盖提县|