gpt4 book ai didi

sql-server - 如果满足条件,则更新 sql server 表中的第一行

转载 作者:行者123 更新时间:2023-12-04 03:05:34 25 4
gpt4 key购买 nike

我有一个包含以下行的表格。

tblPictures

  • 图片编号
  • 图片名称
  • 画廊ID
  • 活跃

我想运行查询以选择例如所有带有 galleryID=3isActive=1 的图片

如果此选择中没有 isActive 行为 1 的图片(换句话说,查询不返回任何结果)我想使用 galleryID 制作第一张图片的 isActive=1 =3

有人可以指导我吗?

最佳答案

给你。基本上,它会检查该集合中是否有任何事件记录,如果没有,则更新第一个记录(由 picID 确定)。如果愿意,您可以将其粘贴到存储过程或函数中,或者只需运行脚本并手动更改图库 ID。

DECLARE @Count INT,
@GalleryID INT

SET @GalleryID = 3

SELECT @Count = COUNT(*)
FROM tblPictures
WHERE galleryID=@GalleryID and isActive=1

IF @Count = 0
BEGIN

UPDATE tblPictures
SET isActive = 1
WHERE picID = (
SELECT TOP 1 picID
FROM tblPictures
WHERE galleryID = @GalleryID
ORDER BY picID
)

END

莫尔代码

这应该更新任何画廊中没有事件图片的第一张图片(通过 picID):

UPDATE tblPictures
SET isActive = 1
WHERE picID IN (
SELECT picID
FROM (
SELECT galleryID, MIN(picID) AS 'picID'
FROM tblPictures AS p
JOIN (
SELECT galleryID
FROM tblPictures
WHERE isActive = 1
) AS s ON p.galleryID <> s.galleryID
GROUP BY galleryID
)
)

最里面的子查询查找确实有事件图片的画廊。下一步查找排除有图片的 galleryID。然后我们找到每个 galleryID 的最低 picID 并使用它们来更新表格。

关于sql-server - 如果满足条件,则更新 sql server 表中的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12415590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com