gpt4 book ai didi

sql - 使用 IF/ELSE 并插入临时表

转载 作者:行者123 更新时间:2023-12-04 16:02:42 24 4
gpt4 key购买 nike

我正在尝试编写一个接受两个输入(一个内容 ID 和一个内容类型)的 SQL 查询,根据用户设置的内容类型从不同的源表填充一个临时表,然后最终运行一个查询针对临时表。我想我在将我的临时表合并到我的 IF/ELSE 语句中遇到了困难。

所以我的问题是,为什么这会返回一些非零数量的结果:

DECLARE @contentID int, @contenttype varchar
SET @contentid = 28861
SET @contenttype = 'resource'

DECLARE @tags_current TABLE (contentID int, taxonomyID int, isPrimary int)

INSERT INTO @tags_current (contentID, taxonomyID, isPrimary)
SELECT resourceID as contentID, taxonomyID, isPrimary
FROM resource2taxonomy r2t
WHERE r2t.resourceID = @contentID

SELECT * FROM @tags_current

而这会返回零结果:

DECLARE @contentID int, @contenttype varchar
SET @contentid = 28861
SET @contenttype = 'resource'

DECLARE @tags_current TABLE (contentID int, taxonomyID int, isPrimary int)

IF (@contenttype = 'resource')
BEGIN
INSERT INTO @tags_current (contentID, taxonomyID, isPrimary)
SELECT resourceID as contentID, taxonomyID, isPrimary
FROM resource2taxonomy r2t
WHERE r2t.resourceID = @contentID
END

SELECT * FROM @tags_current

另外,我试过这个,它也返回零结果:

DECLARE @contentID int, @contenttype varchar, @command varchar
SET @contentid = 28861
SET @contenttype = 'resource'

DECLARE @tags_current TABLE (contentID int, taxonomyID int, isPrimary int)

IF (@contenttype = 'resource')
BEGIN
SET @command = 'INTO @tags_current (contentID, taxonomyID, isPrimary) SELECT resourceID as contentID, taxonomyID, isPrimary FROM resource2taxonomy r2t WHERE r2t.resourceID = @contentID'
END

EXECUTE(@command)
SELECT * FROM @tags_current

我已经阅读了 this , this , 和 this ,但出于某种原因,它只是不适合我。我正在使用 MS SQL Server 2014,以防有帮助。这是 SQL Fiddle .谢谢!

最佳答案

这实际上很简单,您没有给 @contenttype 一个长度,因此,默认情况下它的长度为 1 个字符。

如果你这样做,这将很清楚:

DECLARE @contentID int, @contenttype varchar
SET @contentid = 28861
SET @contenttype = 'resource'
SELECT @contenttype

结果是r,所以,IF (@contenttype = 'resource')不成立

关于sql - 使用 IF/ELSE 并插入临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32403606/

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