我的项目中存在以下情况:
@ num1是整数
当@ num1 = null /''时,输出应为space(0)
否则为单个数字,并在前面与“ 0”连接。如果是两位数,请按原样显示。
示例:
1. @num1 = null/'' output: space(0)
2. @num1 = '0' output:00
3. @num1 = '9' output:09
4. @num1 = '11' output = 11
我的代码:
declare @num1 int = null
select @num1,
CASE
WHEN cast(@num1 as varchar) = null THEN space(0)
ELSE RIGHT(CONCAT('00', CONVERT(VARCHAR,@num1)),2)
END as 'output'
此代码适用于示例2、3、4。但是当我设置@ num1 = null时,输出仍显示为'00'。所需的输出应为space(0)/ space。在这里缺少一些转换。有帮助吗?
答案 0 :(得分:1)
你为什么typesript
const moduleFactory = this.compiler.compileModuleSync(module.
const moduleRef = moduleFactory.create(this.injector);
console.log(moduleRef.injector.get(ROUTES));
??
您可以:
cast
因此,您也可以将其简化为:
. . .
WHEN @num1 is null THEN space(1)
答案 1 :(得分:0)
我注意到并修复了一些简单的事情。完全没有必要进行投射。
declare @num1 int = null
select @num1,
CASE
WHEN @num1 is null THEN space(0)
ELSE RIGHT(CONCAT('00', CONVERT(VARCHAR,@num1)),2)
END as 'output'