我有一个名为HouseInfo的列,其中包含字母,数字和特殊字符。
列数据格式:AANNNNX
其中A是字母字符A-Z,N是数字0-9,X可以包含字母,数字和特殊字符,例如'AB1234A','AC32158'或'DK8954;'或'DS5466:'或'SK1245>'
我正在尝试编写一个查询,查找仅在末尾只有特殊字符的列。我尝试过类似的东西,但在这种情况下,我必须将所有特殊字符传递给它。
select * from testtable where HouseInfo like '______[;,:,<,>,=]'
有没有办法检测除终点位置的数字和字母字符以外的所有特殊字符?
答案 0 :(得分:6)
这个怎么样?
SELECT * FROM testtable WHERE HouseInfo NOT LIKE '%[a-z0-9]'
答案 1 :(得分:1)
你可以用“赞或不喜欢”两种方式做到这一点
使用Like:
public class MyInitializer : CreateDatabaseIfNotExists<MyContext>
{
protected override void Seed(MyContext context)
{
query = "CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ]
[ ; ]
<view_attribute> ::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
} ";
context.Database.SqlCommand(query);
}
}
此处为方括号,您可以指定要匹配的特殊字符,我已将它们指定为示例
使用不喜欢
SELECT * FROM testtable WHERE HouseInfo LIKE '%[@#$%]'