sql - 函数内的 SQL IF
问题描述
ALTER FUNCTION [dbo].[FSmapping] (
@runID as bigInt,
@TypMap as char(1)
)
RETURNS TABLE
AS
RETURN
IF (@TypMap ='C')
BEGIN
SELECT b.[A/C],g.accountNumber, b.[Process], g.[endingBalanceLC], g.beginningBalanceLC
FROM table1 g
LEFT JOIN table2 b ON b.[Acc2]=g.Account_Synt
where RunID = @runID
END
我正在尝试在 SQL 中实现一个表函数。基本上它应该还有3个IF
s,唯一要切换的是table2,来自table2-4,基于输入CIR S。错误是IF
语句,我知道缺少一些东西,我很难实现一些一种以表为返回值的开关函数。Select 在没有 IF 语法的情况下可以完美运行,它还会在 IF 内的两个变量上显示错误
必须声明标量变量 runID 和 TypMap
解决方案
如果 TypMap 不来 C,函数会返回什么?
我想你需要'ELSE'。
IF Boolean_expression
BEGIN
-- Statement block executes when the Boolean expression is TRUE
END
ELSE
BEGIN
-- Statement block executes when the Boolean expression is FALSE
END
推荐阅读
- pandas - 熊猫合并而不覆盖
- angular - Angular - 开发更改多个 ngModel 值的通用函数的最佳方法?
- javascript - React 无法添加属性更新器,对象不可扩展
- mysql - ALTER TABLE DROP COLUMN - 服务器状态“已停止”
- python - 如何使用自定义名称运行进程?
- java - 无法在 JPA 查询中进行投影
- azure - 启用部署槽
- ios - macOS Catalina 上的颤振“设备不支持无线同步”错误
- concurrency - 当 2 个进程尝试同时读取系统时钟时是否存在竞争条件?
- javascript - 从对象属性中删除双引号,除非以数字开头