Maison base de données tutoriel mysql sqlserver利用存储过程去除重复行的sql语句

sqlserver利用存储过程去除重复行的sql语句

Jun 07, 2016 pm 06:00 PM
存储过程

以前弄过类似,去除相同信息的方法,现在找不到了,不过今天又花一些时间给弄出来了,记录一下

还是先上代码吧 ,可以先看
代码如下:
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 @@error0
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.

不过我找到解决办法,不过很麻烦,

(第二个回答用 ' sql '进行连接)

(用case end 也行)

4. select into 和 insert into select 两种复制文句 (这里感谢)

  1.

语句形式为:

  2.

语句形式为:

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 --返回上一行代码受影响的行数

作者:

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Étapes et précautions pour la mise en œuvre des mises à jour par lots à l'aide de procédures stockées Oracle Étapes et précautions pour la mise en œuvre des mises à jour par lots à l'aide de procédures stockées Oracle Mar 08, 2024 pm 04:12 PM

Titre : Étapes et précautions d'implémentation des mises à jour par lots par les procédures stockées Oracle Dans la base de données Oracle, les procédures stockées sont un ensemble d'instructions SQL conçues pour améliorer les performances de la base de données, réutiliser le code et renforcer la sécurité. Les procédures stockées peuvent être utilisées pour mettre à jour les données par lots. Cet article explique comment utiliser les procédures stockées Oracle pour implémenter des mises à jour par lots et fournit des exemples de code spécifiques. Étape 1 : Créer une procédure stockée Tout d’abord, nous devons créer une procédure stockée pour implémenter les opérations de mise à jour par lots. Voici comment créer une procédure stockée

Comment supprimer une procédure stockée dans MySQL Comment supprimer une procédure stockée dans MySQL Sep 05, 2023 am 10:25 AM

Les méthodes MySQL pour supprimer des procédures stockées incluent l'utilisation de l'instruction DROP PROCEDURE, l'utilisation de MySQL Workbench et l'utilisation d'outils de ligne de commande. Introduction détaillée : 1. Utilisez l'instruction DROP PROCEDURE Les étapes consistent d'abord à ouvrir le client MySQL ou à utiliser n'importe quel outil prenant en charge MySQL, puis à vous connecter à votre base de données MySQL et enfin à exécuter l'instruction SQL suivante pour supprimer la procédure stockée 2. Utilisez MySQL Workbench pour supprimer les procédures stockées, etc.

Procédure stockée Oracle : méthode d'implémentation pour déterminer si une table existe Procédure stockée Oracle : méthode d'implémentation pour déterminer si une table existe Mar 08, 2024 pm 09:18 PM

Les procédures stockées dans la base de données Oracle sont un type spécifique de procédures stockées utilisées pour exécuter une série d'instructions SQL et d'opérations sur les données dans la base de données. Dans le travail réel de développement de bases de données, nous devons parfois déterminer si une certaine table existe dans la base de données, afin de pouvoir effectuer un jugement et un traitement logique dans le processus stocké. Ci-dessous, nous présenterons comment implémenter la méthode permettant de déterminer si une table existe dans la base de données Oracle et fournirons des exemples de code spécifiques. Tout d'abord, nous pouvons utiliser la table système user_tables ou all_t

Principes de mise en œuvre et applications des procédures stockées Golang Principes de mise en œuvre et applications des procédures stockées Golang Feb 22, 2024 pm 04:57 PM

Principes de mise en œuvre et applications des procédures stockées Golang Une procédure stockée est un programme précompilé qui est stocké dans une base de données relationnelle et peut être appelé par une application. Elle peut réduire efficacement le coût de la transmission réseau des données et améliorer l'efficacité d'exécution de la base de données. Bien que Golang ne prenne pas directement en charge les procédures stockées, vous pouvez simuler les fonctions des procédures stockées à l'aide d'instructions SQL. Cet article présentera les principes et les applications de la mise en œuvre de procédures stockées dans Golang et fournira des exemples de code spécifiques. 1. Le principe de mise en œuvre de la procédure stockée Golang est en Gol

Comment écrire des procédures stockées et des fonctions personnalisées dans MySQL en utilisant C# Comment écrire des procédures stockées et des fonctions personnalisées dans MySQL en utilisant C# Sep 22, 2023 am 09:42 AM

Comment écrire des procédures stockées et des fonctions personnalisées dans MySQL à l'aide de C# Introduction : MySQL est un système de gestion de base de données open source largement utilisé et C# est un langage de programmation orienté objet couramment utilisé. Au cours du processus de développement, nous devons souvent utiliser des procédures et des fonctions stockées dans une base de données pour améliorer la réutilisabilité et les performances du code. Cet article explique comment utiliser C# pour écrire des procédures stockées et des fonctions personnalisées dans une base de données MySQL et fournit des exemples de code spécifiques. 1. Procédures stockées Une procédure stockée est un ensemble d'instructions SQL qui effectuent des tâches spécifiques.

Comparaison détaillée et analyse des avantages des procédures et fonctions stockées Oracle Comparaison détaillée et analyse des avantages des procédures et fonctions stockées Oracle Mar 03, 2024 am 10:24 AM

Titre : Comparaison détaillée et analyse des avantages des procédures et fonctions stockées Oracle. Dans la base de données Oracle, les procédures et fonctions stockées sont deux objets de base de données importants. Elles peuvent toutes deux être utilisées pour encapsuler une série d'instructions et de logique SQL afin d'améliorer l'efficacité et la complexité des données. Opérations. Cet article comparera en détail les caractéristiques des procédures et fonctions stockées Oracle, ainsi que leurs avantages respectifs, et fournira des exemples de code spécifiques. Procédure stockée Une procédure stockée est un ensemble d'instructions SQL et de logique de code PL/SQL pré-écrites et stockées dans la base de données.

Comment écrire des procédures stockées efficaces à l'aide de Golang Comment écrire des procédures stockées efficaces à l'aide de Golang Mar 22, 2023 pm 02:24 PM

Golang est un langage de programmation puissant qui peut facilement implémenter des procédures stockées. Dans cet article, nous présenterons comment écrire des procédures stockées efficaces à l'aide de Golang et les avantages de leur utilisation dans vos projets.

Stratégie d'optimisation des performances pour la mise à jour par lots de procédures stockées Oracle Stratégie d'optimisation des performances pour la mise à jour par lots de procédures stockées Oracle Mar 08, 2024 pm 09:36 PM

Stratégies d'optimisation des performances pour les mises à jour par lots des procédures stockées Oracle Dans la base de données Oracle, une procédure stockée est un objet de base de données utilisé pour traiter la logique des données ou effectuer des tâches spécifiques. Elle peut fournir certaines stratégies d'optimisation des performances, en particulier lors de la mise à jour des données par lots. La mise à jour des données par lots implique généralement un grand nombre d'opérations au niveau des lignes. Afin d'améliorer les performances et l'efficacité, nous pouvons adopter certaines stratégies et techniques pour optimiser les performances des procédures stockées. Ce qui suit présente quelques stratégies d'optimisation des performances pour les mises à jour par lots des procédures stockées Oracle et fournit des exemples de code spécifiques.

See all articles