sql - SQL IF ELSE 插入#temp 表问题
问题描述
我有一个场景,我不确定如何解决。下面我有一个 if else 语句以及将数据插入临时表。
IF @code= 'All'
BEGIN
DROP TABLE IF EXISTS #temp
SELECT *
INTO #temp
FROM #tempCity
END
ELSE
BEGIN
DROP TABLE IF EXISTS #temp
SELECT *
INTO #temp
FROM #tempCity
WHERE [City_Code] = @code
END
值得注意的是,我确实需要表#temp
在两种情况下都具有相同的名称,因为我稍后会使用它并且可能插入的内容可能因情况而异,这就是我没有定义的原因#temp
。
我收到一条错误消息,说明在这种情况下可以理解:
There is already an object named '#temp' in the database.
有谁知道我可以解决这个微妙问题的方法吗?
解决方案
为什么不简单地使用布尔逻辑:
IF EXISTS (SELECT 1 FROM #temp)
DROP TABLE #temp
SELECT *
INTO #temp
FROM #tempCity
WHERE (@code= 'All' OR [City_Code] = @code);
推荐阅读
- java - java.io.FileNotFoundException - zip4j
- acumatica - 新的 Acumatica 系统电子邮件帐户返回“不接受用户名或密码”错误
- java - 正则表达式连接多个匹配项
- r - 有没有办法检查 R 在 for 循环中“卡住”的位置?(右)
- c - Issue with feeding arrays of structs as arguments into pthread_create
- jquery - my multiple versions of jQuery doesn't work
- typo3 - 有没有办法在 TYPO3 9 中通过 extbase 创建域对象翻译?
- c# - 如何从 MS Access 文件中读取数据并使用 T-SQL 或 SSIS 将该数据从每个工作表插入到相应的 SQL Server 数据库表中?
- apache-kafka - 状态存储可能已迁移到另一个实例
- reactjs - 如何将 HTML 输入值流与 UP 或 DOWN 键流以及输入类型流结合起来?