sql - 仅当临时表有值时才使用内连接
问题描述
我有动态查询,首先我创建一个临时表,然后填充它:
CREATE TABLE [#SearchKeys] ([DesignKey] INT);
INSERT INTO [#SearchKeys]
SELECT
[pd].[DesignKey]
FROM
[Project] AS [p]
....
一旦有了数据,我就将其用于动态查询的 INNER JOIN 部分,例如:
INNER JOIN
(SELECT DesignKey FROM #SearchKeys) AS [S] ON [S].[DesignKey] = [PD].[DesignKey]
问题是我只想INNER JOIN
在临时表有值的情况下添加它,如果不只是不执行它。我怎样才能做到这一点?问候
解决方案
我没有从您的问题中看到动态查询。但我只是在这里给你伪代码
--Check for If Data Exist in #SearchKeys
IF Exists (SELECT 1 FROM #SearchKeys)--Condition to check value available in temp table
BEGIN
--without INNER JOIN Query
END
ELSE
BEGIN
-- with INNER JOIN Query
INNER JOIN (SELECT DesignKey FROM #SearchKeys) AS [S] ON [S].[DesignKey] = [PD].[DesignKey]
END
推荐阅读
- c# - Automapper通过函数反向映射
- python - 需要帮助解决 Project Euler 问题 #35 python?
- python - 使用 python pandas 中的列位置/编号转换为日期时间
- android - fetch SyntaxError: Unexpected token U in JSON at position 0 in react native Android
- php - 我想打印数字模式程序,但它不会给我错误的输出
- python - Azure App Service:在容器端指定 docker run 端口
- sql - Postgress to_date 和提取组合
- javascript - 使用 React 动态导入文件
- javascript - 仅在选项卡关闭时使用 beforeunload
- loops - 如何在不运行以下脚本的情况下退出循环