![](/img/trans.png)
[英]How can i determine the instance of my Microsoft SQL Server 2008 R2
[英]How can I determine if a field has leading zeroes in SQL Server 2008 R2?
我在表上有一個varchar字段,我需要知道是否有辦法知道它是否以給定的零開始。
我必須使用變量還是if-else?
您可以使用LEFT
獲取前導文本並與零字符串進行比較:
DECLARE @number INT = 3;
SELECT *
FROM your_table
WHERE LEFT(column_name, @number) = REPLICATE('0', @number)
-- AND SUBSTRING(col, @number+1,1) <> '0'; If you need exact number of leading zeros
或者當您需要標志時:
SELECT *,
[has_3_leading_zeros] = CASE
WHEN LEFT(column_name, @number) = REPLICATE('0', @number)
THEN 1 ELSE 0 END
FROM your_table;
另一種方法是使用LIKE
(此解決方案可支持SARG,如果列具有索引,則應具有更好的性能):
SELECT *
FROM your_table
WHERE col LIKE REPLICATE('0', @number) + '%'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.