Mysql 如何在SQL中检查VARCHAR(50)列的值
我是sql的新手,需要帮助构建我正在处理的这个存储过程。我在存储过程中传递的一个值是ClassCodeGroup,有时小于10。如何在sql中检查它是否小于10? 如果它小于10(1-9),那么我想添加一个前导0,我认为应该是这样的Mysql 如何在SQL中检查VARCHAR(50)列的值,mysql,.net,sql,vb.net,stored-procedures,Mysql,.net,Sql,Vb.net,Stored Procedures,我是sql的新手,需要帮助构建我正在处理的这个存储过程。我在存储过程中传递的一个值是ClassCodeGroup,有时小于10。如何在sql中检查它是否小于10? 如果它小于10(1-9),那么我想添加一个前导0,我认为应该是这样的 select RIGHT('0' + convert (varchar(50), @ClassCodeGroup),2) 任何帮助都将不胜感激!谢谢一个简单的方法是 select RIGHT(CAST(,1000+@ClassCodeGroup AS char(
select RIGHT('0' + convert (varchar(50), @ClassCodeGroup),2)
任何帮助都将不胜感激!谢谢一个简单的方法是
select RIGHT(CAST(,1000+@ClassCodeGroup AS char(8)),2)
这样,您就不必检查@ClassCodeGroup
的长度,因为您只需转换一个带前导零的数字,并且只考虑最后两位数字。只是把它改为CAST,因为我不确定转换语法
我是sql的新手,需要帮助构建这个存储过程
如何在sql中检查其是否小于10
您可以在存储过程和触发器中使用:
IF @ClassCodeGroup < 10
THEN
-- do something
ELSE
-- do other thing
END IF;
请注意,将截断大于99的值
最后,回到最初的问题,您可以使用:
在这里,我使用该函数以前导“0”作为小于10的值的前缀。注意:在这个版本中,大于或等于10的值保持不变。看看这里:这里的答案是:不要在varchar列中存储数字数据!你能告诉我,1000+@ClassCodeGroup是什么吗?@HereToLearn_uu我加上1000(或另一个大数字),其中至少有2个零(100就足够了),所以我最终得到的数字要么是前导零,要么是
@ClassCodeGroup
的2位数字。它甚至在@ClassCodeGroup
为零时也能工作。
SELECT LPAD(@ClassCodeGroup, 2, '0')
SELECT IF(@ClassCodeGroup>10,
@ClassCodeGroup,
CONCAT('0',@ClassCodeGroup)
)