SQL语句来判断数据库某一列下是否有相同值的记录方法

SQL语句来判断数据库某一列下是否有相同值的记录方法,第1张

SQL语句来判断数据库某一列下是否有相同值的记录方法

有的时候我们可能需要判断数据库中,某一字段(某一列)下是否有相同值的记录,这时该怎么办呢?根据您所使用的数据库不同,首先你要打开数据库的查询窗口,通过SQL语句来创建查询,然后运行就可以了,具体方法如下:

这里假设数据库中有一个名为student的表,所要查询的字段是name,则判断student表中name字段下是否有相同值的记录的SQL语句为:

1、查询出数据库中总的name字段记录数的值

SELECT COUNT(name)

FROM student

2、查询出数据库中name字段下唯一的记录总数(即查询出不相同的记录数,如果找到相同的记录则取其中一条记录)

SELECT COUNT(name)

FROM student

GROUP BY name

比较上面两次查询的结果,如果一样,则表明student数据库中的name字段下并没有相同值的记录,如果不一样,则表明student数据库中的name字段下有相同值的记录。

可以写存储过程或者触发器。那里有控制语句。和c的差不多。因为SQL是高度非过程化的 语言,不可能有IF的,只能用存储过程处理了。

CREATE PROCEDURE order_tot_amt

@o_id int,

@p_tot int output

AS

SELECT @p_tot = sum(Unitprice*Quantity)

FROM orderdetails

WHERE ordered=@o_id

GO

实例 设有两个表为Product,Order_,其表内容如下: Product

产品编号 产品名称 客户订数

001 钢笔 30

002 毛笔 50

003 铅笔 100

Order_

产品编号 客户名 客户订金

001 南山区 $30

002 罗湖区 $50

003 宝安区 $4

请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额, 总金额=订金*订数,临时表放在存储过程中 代码如下:

Create proc temp_sale

as

select a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数* b.客户订金 as总金额

into #temptable from Product a inner join Order_ b on a.产品编号=b.产品编号-----此处要用别名

if @@error=0

print 'Good'

else

print 'Fail'

go

SQL语句中是没有if....else...语句的,但可以用case语句代替,而且是所有数据库都支持的,效果和if语句一样,都是表示条件。具体使用语法如下:

case when 条件1,

then 结果1;

when 条件2 ,

then 结果2 ;

else 结果N ,end。

可以有任意多个条件,如果没有默认的结果,最后的else也可以不写。

例如:select case when col1 >1 then col2 else col3 end from XXXtable


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9899060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存