我的数据库中有一些nvachar
数据。
aaaa,bb1b,c+cc,1234,dser,5896
我需要两个选择 forOnly String
和Only Int
。这是意思:
第一次选择的结果是 : aaaa
,dser
第二次选择的结果是 : 1234
,5896
如何?
我的数据库中有一些nvachar
数据。
aaaa,bb1b,c+cc,1234,dser,5896
我需要两个选择 forOnly String
和Only Int
。这是意思:
第一次选择的结果是 : aaaa
,dser
第二次选择的结果是 : 1234
,5896
如何?
您可以使用LIKE
来执行此比较。通过使用双重否定,您可以使用单个表达式执行测试:
declare @t table (val varchar(10) not null)
insert into @t(val)
select 'aaaa' union all
select 'bb1b' union all
select 'c+cc' union all
select '1234' union all
select 'dser' union all
select '5896'
select * from @t where val not like '%[^A-Z]%'
select * from @t where val not like '%[^0-9]%'
第一个select
说“给我所有不包含非字母字符的字符串”。同样,第二个说“给我所有不包含非数字的字符串”
您需要检查正则表达式。
在您的示例中,查询如下所示:
SELECT * FROM example WHERE foo LIKE '%[0-9]%' AND foo NOT LIKE '%[A-Z]%'
和
SELECT * FROM example WHERE foo NOT LIKE '%[0-9]%' AND foo LIKE '%[A-Z]%'
也许您必须为不区分大小写的检查执行 UPPERCASE(foo) 。并在 NOT LIKE 表达式中添加其他字符,如 +、- 等。
请参阅:http: //msdn.microsoft.com/en-us/library/ms187489 (SQL.90).aspx