sql-server - 在查询完成之前,不会保存 SQL Server 中的字符串修改
问题描述
SELECT
pp.Product_ID, p.LabelEN, p.ID, pc.Comments, pc.lang
INTO
#TEMPTBL
FROM
#Product_Comments pc
JOIN
Product_Property vp ON pp.Product_ID=pc.Product_ID
JOIN
Product p ON p.ID = pp.Product_ID
JOIN
#prod pdom ON pdom.ID = p.ID
JOIN
Property p ON p.ID = pp.Property_ID
JOIN
IncludedPropertyCategory ipc ON p.ID = ipc.Property_ID
WHERE
pc.lang = 'EN'
UPDATE pc
SET pc.Comments = p.LabelEN+', '+p.Comments
FROM
(SELECT *
FROM #TEMPTBL) AS p
JOIN #Product_Comments AS pc ON p.Product_ID = pc.Product_ID AND p.lang = pc.lang
我有上面显示的这些查询,UPDATE
并将每个功能(属性)附加到评论列;然而,问题是当一个产品有几个特性时,它只保存最后一个。例如,假设该产品具有以下特点:轻巧、电动、优质和新品,那么只有新品才会被前置。
我希望所有功能都添加到字符串中。
我得到类似的信息:“该产品具有新功能”。
当我想要:“轻量、电动、优质和新是这个产品的特点”。
解决方案
你试一下。
UPDATE pc
SET pc.Comments = p.NewComment
FROM (
SELECT TMP1.Product_Id, TMP1.lang, STRING_AGG(NewCommentTmp, ',') AS NewComment
FROM (
SELECT *, p.LabelEN + ', ' + p.Comment AS NewCommentTmp
FROM #TEMPTBL
) TMP1
) AS p
JOIN #Product_Comments AS pc ON p.Product_ID = pc.Product_ID AND p.lang = pc.lang;
推荐阅读
- neo4j - 密码查询 Neo4J
- python - X.func 和 X.func( ) 的区别
- json - Firestore 将架构结构导出到 json
- java - Java Kafka Stream - Avro 序列化程序错误
- c - c中的字符输入
- android - 使用 Google 的 FIT API 跟踪当天的总步数
- mysql - 即使用户拥有所有权限,如何在春季启动中解决“用户'user'@'localhost'的java.sql.sqlexception访问被拒绝”?
- server - 创建 Minecraft 服务器时,我必须使用 ISP 提供的 Suddenlink 调制解调器/路由器,还是可以使用第二个 Nighthawk 路由器?
- python - Python 3.8 二维数组拼接正在产生奇怪的结果。拼接就是让列表指向内存
- node.js - 如何从 aysnc/await 函数返回数据?