空大小写并置

时间:2018-07-26 18:06:05

标签: sql-server type-conversion

我的项目中存在以下情况:

@ num1是整数

  1. 当@ num1 = null /''时,输出应为space(0)

  2. 否则为单个数字,并在前面与“ 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。在这里缺少一些转换。有帮助吗?

2 个答案:

答案 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'