如何找出有多少零存在并在SQL表中显示零

Gur*_*han -1 c# sql asp.net

用于创建表的SQL查询

CREATE TABLE Test
(ID int,
 Value1 int,
 Value2 int,
)
Run Code Online (Sandbox Code Playgroud)

用于插入值的SQL查询

  INSERT INTO Test
  VALUES(001,200,300)
Run Code Online (Sandbox Code Playgroud)

产量

ID    Value1    Value2
1     200       300
Run Code Online (Sandbox Code Playgroud)

查询在结果中显示00

SELECT RIGHT('00' + CAST([ID] AS varchar(5)) , 3),Value1,Value2
FROM Test
Run Code Online (Sandbox Code Playgroud)

现在输出是

001 200   300
Run Code Online (Sandbox Code Playgroud)

我的Id值最大为5位数

示例00001,00010,00100,01000,10000

现在我想显示结果

   00001,00010,00100,01000,10000
Run Code Online (Sandbox Code Playgroud)

我需要一个查询自动找出数字前有多少零

例00001此值有4zero,00010此值有3个零.

如何使用此查询

 SELECT RIGHT('00' + CAST([ID] AS varchar(5)) , 3),Value1,Value2
 FROM Test
Run Code Online (Sandbox Code Playgroud)

查找多少零存在并显示零结果

Tho*_*mar 7

数字数据类型不包含前导零.如果需要存储前导零,则需要使用字符数据类型.

但是,如果这样做,为了存储没有前导零的数字,请注意字符数据类型字段的排序是按字典顺序完成的,因此您最终可能会得到如下内容:

1
10
11
2
20
21
Run Code Online (Sandbox Code Playgroud)

此外,您应该注意数据存储和数据显示之间的区别.你可以存储没有前导零的数字,但是让你的应用程序显示它们包含前导零!


正如其他人所指出的那样

SELECT RIGHT('00' + CONVERT(NVARCHAR, Field), 3)
Run Code Online (Sandbox Code Playgroud)

将帮助您选择数字字段的内容作为带前导零的字符串.

您也可以在C#中使用

String.Format("{0:d3}", fieldvalue);
Run Code Online (Sandbox Code Playgroud)