我有一个SQL查询,我提供输入并接收输出。所以我检查用户是否输入变量。但是我想改进它。
目前我使用以下语句来检查输入变量是否包含变量,如果他们没有输入输入,则为他们自动设置范围,如下所示。
请注意:
- :StudentIdFrom
是我配置的输入字段,允许用户输入查询
- **:**
(冒号表示输入)
- studentNo
是一个字符变化类型,正好是10个字符
- 所有输入都是字符串。
(CASE
WHEN LENGTH(:StudentIdFrom ) > 0
THEN CAST(studentNo AS VARCHAR(10)) BETWEEN :StudentIdFrom AND
(CASE
WHEN LENGTH(:StudentIdUntil) > 0
THEN :StudentIdUntil
ELSE :StudentIdFrom
END)
ELSE CAST(studentNo AS VARCHAR(10)) BETWEEN '0000000001' and '9999999999'
END
)
我想要的是用户只需输入一个数字而不输入语句中的所有0。
答案 0 :(得分:1)
试试这个:
select replicate(0,10-len(field))+field
答案 1 :(得分:1)
答案在postgresql LPAD(:studentIdFrom,10,'0')