我的表帐户包含属性id
和account number
。
id account number
--------------------
1 007-000068
2 007-000069
我需要验证一个帐号,如果它采用这种格式"XXX-XXXXXXXX"
,X
是可变的
答案 0 :(得分:2)
我建议使用这种模式:
select id, accountnumber,
(case when accountnumber like '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
then 1 else 0
end) as isValid
这假设您期望每个位置都有数字。
答案 1 :(得分:0)
以下应该有用(选择你需要的那个):
SELECT id, [account number]
, IIF([account number] LIKE '___-________', 1, 0) AS IsValidStructure
, IIF([account number] LIKE '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]', 1, 0)
AS IsValidWithOnlyDigits
FROM TableName
有关更多说明,请查看有关可能的通配符的官方文档:https://msdn.microsoft.com/en-us/library/ms179859.aspx
注意: IIF
子句可从SQL Server 2012获得。对于较低版本CASE
应该像 Gordon Linoff 一样使用它他的回答。