tsql - 如何在 SQL 存储过程中编写条件?
问题描述
我有这个存储过程:
IF OBJECT_ID('[dbo].[GetSessionInfo]') IS NOT NULL
DROP PROCEDURE [dbo].[GetSessionInfo]
GO
CREATE PROCEDURE [dbo].[GetSessionInfo](
@SessionID int)
WITH ENCRYPTION
AS
BEGIN
SET NOCOUNT ON;
SELECT [cfgGroup].[Name] as GroupName,[cfgSession].[Name],[cfgSession].[GroupId],[cfgSession].[IsDisabled],
[cfgSession].[IsTestSession],[cfgSession].[NextExecutionTime],[cfgSession].[SType],[cfgSession].[DaysToKeep],
[cfgSchedule].[ID],[cfgSchedule].[SessionId],[cfgSchedule].[MinuteFreq],[cfgSchedule].[HourFreq],
[cfgSchedule].[Daily],[cfgSchedule].[WeekFreq],[cfgSchedule].[StartDate],[cfgSchedule].[EndDate],
[cfgSchedule].[NoOrderDays],[cfgSchedule].[OrderDays],[cfgData].[ID],[cfgData].[SessionId],[cfgData].[StationExclude],
[cfgData].[StationFilter],[cfgData].[ConsoleExclude],[cfgData].[ConsoleFilter],[cfgData].[MedClassesExclude],[cfgData].[MedClassesFilter],[cfgData].[PickAreasExclude],
[cfgData].[PickAreasFilter], [cfgData].[DeviceType]
FROM [cfgGroup],[cfgSession],[cfgSchedule],[cfgData]
WHERE [cfgGroup].[ID] = [cfgSession].[GroupId]
AND
[cfgSession].[ID] = @SessionID
AND
[cfgSchedule].[SessionId] = [cfgSession].[ID]
AND
[cfgData].[SessionId] = [cfgSchedule].[SessionId]
END
GO
我需要根据其中的内容更改存储过程返回的数据[cfgSession].[SType]
[cfgSession].[SType]
只能是Send
或Receive
如果[cfgSession].[SType]
是,Send
那么我需要它来返回SELECT
上面语句中的当前内容。
如果[cfgSession].[SType]
是,Receive
那么我需要它返回SELECT
上面当前的内容减去[cfgData]
字段。
解决方案
推荐阅读
- push-notification - 如何在 OpenFire 中配置 FCM 推送通知
- java - Logback Appender 的静态上下文配置
- java - 按“前缀优先”逻辑对弹性命中进行排序
- regex - 匹配具有特定文本并在方括号内以 _P 结尾的行
- javascript - 页面第一次重新加载时 reactjs 的平滑滚动条问题
- javascript - 香草javascript中的单选按钮检查不起作用
- c# - MessageBox 出现三次后如何关闭表单?
- java - 如何将 xml 转换为 json 或 javabean?
- javascript - 在 VueJS 中为表的映射数组制作自定义函数
- ruby-on-rails - 部署到 Heroku 时,rails 应用程序的导航栏消失