在 SQL 服务器中,如何检查列值是否仅包含零

In the SQL Server, how can i check if the column value contains only zero

假设:将 Sample 视为数据库,将 Column_Name 视为 table。

示例输入:

Column_Name
12345
000
00
00000

输出:

Column_Name
000
00
00000

Select * from Sample.Column_Name where  Column_Name like '[0]+'

以上代码有效 正确的方法是什么?

您可以像这样使用 not like 和通配符:

where column_name not like '%[^0]%'

为了确保有一个零:

where column_name not like '%[^0]%' and column_name like '%0%'

你也可以使用replace():

where replace(column_name, '0', '') = ''

甚至 try_convert():

where try_convert(int, column_name) = 0

但是,这也接受 -0+0 和空格。

select * from Sample.Column_Name where isnumeric(Column_Name) = 1 and cast(Column_Name as int) == 0

精确解应该是:

SELECT * 
FROM   Sample.Column_Name 
WHERE  Column_Name = REPLICATE('0', LEN(Column_Name ));

假设 Column_Name 是 VARCHAR 数据类型列