Sae*_*eid -1 sql t-sql sql-server-2008
我有一个表格PostalCode
类型的表格Char(10)
,我使用以下选择查询:
SELECT [Fm].[Id], [Sdp].[FirstName], [Sdp].[LastName], [Sdp].[SSN],
[Sdp].[StoreName],
case when isnumeric([Sdp].[PostalCode]) = 1 then CONVERT(CHAR(10),[Sdp].[PostalCode])
else '0' end, [Fc].[Id], [Sdp].[Address]
FROM [SRM].[SiteMembers].[DProfile] AS [Sdp]
INNER JOIN [SRM].[SiteMembers].[Member] AS [Sm]
ON [Sdp].[Member_Id] = [Sm].[Id]
INNER JOIN [FRM].[Members].[Member] AS [Fm]
ON [Sm].[UserId] = [Fm].[UserId]
INNER JOIN [SRM].[General].[City] AS [Sc]
ON [Sdp].[City_Id]=[Sc].[Id]
INNER JOIN [FRM].[General].[City] AS [Fc]
ON [Fc].[Title]=[Sc].[Title]
COLLATE SQL_Latin1_General_CP1_CI_AS
Run Code Online (Sandbox Code Playgroud)
在这个脚本中加入过流错误,如下所示:
Msg 248, Level 16, State 1, Line 2
The conversion of the varchar value '4153675759' overflowed an int column.
Run Code Online (Sandbox Code Playgroud)
我在这里问一个问题,我不想回到过去有2个脚本,那么有没有办法检查PostalCode是数字(我的意思是数字不是int)没有任何错误?
如果你想检查一个(n)(var)char
值是由数字组成而只是数字,那么一个简单的双重否定LIKE
将起作用:
PostalCode not like '%[^0-9]%'
Run Code Online (Sandbox Code Playgroud)
只有在字符串中没有非数字时才会出现这种情况.
归档时间: |
|
查看次数: |
6412 次 |
最近记录: |