Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在SQL中检查VARCHAR(50)列的值_Mysql_.net_Sql_Vb.net_Stored Procedures - Fatal编程技术网

Mysql 如何在SQL中检查VARCHAR(50)列的值

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(

我是sql的新手,需要帮助构建我正在处理的这个存储过程。我在存储过程中传递的一个值是ClassCodeGroup,有时小于10。如何在sql中检查它是否小于10? 如果它小于10(1-9),那么我想添加一个前导0,我认为应该是这样的

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)
         )