Table_A
ID Number
-- ------
1 0
2 00
3 0123
4 000000
5 01240
6 000
'Number'列是数据类型varchar。
为清晰起见编辑。 我的问题是,我可以轻松地撤回包含0的可变长度字符串的所有数据行吗?
我试过了:
SELECT *
FROM Table_A
WHERE LEFT(Number,1) = '0' AND RIGHT(Number,1) = '0'
使用上面的内容,它仍将使用提供的示例表返回以下内容。
ID Number
-- ------
1 0
2 00
4 000000
5 01240
6 000
我正在寻找一个可以将LEN(Number)
int传递给的函数,然后它生成一个特定字符的字符串(在我的例子中是一个0的字符串)。我虽然找不到任何东西。
哦,我也尝试在SUBSTRING
子句中添加WHERE
,但有时Number
列的数字中间有一个0,所以它仍然返回字符串除了0之外的其他数字。
SUBSTRING(Number,ROUND(LEN(Number)/2,0),1) = '0'
感谢任何帮助。
答案 0 :(得分:4)
那么,你想要一个不的字符串包含不是一个0
的东西吗?听起来像是双重否定的时候了:
SELECT *
FROM Table_A
WHERE NOT Number like '%[^0]%'
AND number like '0%' --But we do want it to contain at least one zero
(最后的检查是为了让我们不匹配空字符串)
答案 1 :(得分:1)
答案:
Where number like '%0%'
答案 2 :(得分:0)
SELECT *
FROM yourtable
WHERE len(Number) - len(replace(number,'0','')) >= 0
另一种方法
答案 3 :(得分:0)
您可以使用此查询:
SELECT * FROM Table_A WHERE Number LIKE'%0%';
它会解决你的问题。
答案 4 :(得分:0)
您也可以使用以下一个,您将获得预期的结果。
SELECT *
FROM Table_A
Nunber不喜欢'%[1-9]%'
感谢。