数据库中,如何用SQL语句实现将某字段下的所有记录合成一条记录,用逗号隔开

数据库中,如何用SQL语句实现将某字段下的所有记录合成一条记录,用逗号隔开,第1张

DECLARE @temp VARCHAR(MAX)

SET @temp=''

SELECT  @temp=@temp+','+某字段 FROM 表

SELECT  STUFF(@temp,1,1,SPACE(0))

SELECT  ','+某字段 FROM 表 FOR XML PATH('')

SELECT  STUFF((SELECT ','+ 某字段 FROM 表 FOR XML PATH('')),1,1,SPACE(0))

数据库中in的用法的用法你知道吗?下面我就跟你们详细介绍下数据库中in的用法的用法,希望对你们有用。

数据库中in的用法的用法如下:

IN:确定给定的值是否与子查询或列表中的值相匹配。

IN 关键字使您得以选择与列表中的任意一个值匹配的行。

SELECT ProductID, ProductName FROM Northwind.dbo.Products WHERECategoryID IN (1, 4, 5)

IN 关键字之后的项目必须用逗号隔开,并且括在括号中。

NOT IN:通过 NOT IN关键字引入的子查询也返回一列零值或更多值。

以下查询查找没有出版过商业书籍的出版商的名称。

SELECTpub_name FROM publishers WHERE pub_id NOT IN (SELECT pub_id FROM titles WHEREtype = 'business')

使用 EXISTS和 NOT EXISTS引入的子查询可用于两种集合原理的 *** 作:交集与差集。两个集合的交集包含同时属于两个原集合的所有元素。

差集包含只属于两个集合中的第一个集合的元素。

EXISTS:指定一个子查询,检测行的存在。

SELECT DISTINCT pub_name FROM publishers WHERE EXISTS (SELECT *FROM titles WHERE pub_id = publishers.pub_id AND type =

'business')

SELECTdistinct pub_name FROM publishers WHERE pub_id IN (SELECT pub_id FROM titlesWHERE type = 'business')

两者的区别:

EXISTS:后面可以是整句的查询语句如:SELECT *FROM titles

IN:后面只能是对单列:SELECTpub_id FROM titles

NOT EXISTS:

例如,要查找不出版商业书籍的出版商的名称:

SELECTpub_name FROM publishers WHERE NOT EXISTS (SELECT * FROM titles WHERE pub_id =publishers.pub_id AND type =

'business')

下面的查询查找已经不销售的书的名称:

SELECT titleFROM titles WHERE NOT EXISTS (SELECT title_id FROM sales WHERE title_id =titles.title_id)

例子:

//验证有发布产品的公司个数

select id,name from company where exists (select * from product where comid=company.id)

select id,name from company where id in(select comid from product)

//验证没有发布产品的公司个数

select id,name from company where not exists (select * from product where comid=company.id)

select id,name from company where id not in(select comid from product)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存