簡體   English   中英

如何確定字段在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

LiveDemo

或者當您需要標志時:

SELECT *,
  [has_3_leading_zeros] = CASE 
                            WHEN LEFT(column_name, @number) = REPLICATE('0', @number) 
                            THEN 1 ELSE 0 END
FROM your_table;

LiveDemo2

另一種方法是使用LIKE (此解決方案可支持SARG,如果列具有索引,則應具有更好的性能):

SELECT *
FROM your_table
WHERE col LIKE REPLICATE('0', @number) + '%'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM