如何在结尾处查找具有特殊字符的列数据

时间:2015-05-14 18:14:39

标签: sql sql-server tsql

我有一个名为HouseInfo的列,其中包含字母,数字和特殊字符。

列数据格式:AANNNNX

其中A是字母字符A-Z,N是数字0-9,X可以包含字母,数字和特殊字符,例如'AB1234A','AC32158'或'DK8954;'或'DS5466:'或'SK1245>'

我正在尝试编写一个查询,查找仅在末尾只有特殊字符的列。我尝试过类似的东西,但在这种情况下,我必须将所有特殊字符传递给它。

select * from testtable where HouseInfo like '______[;,:,<,>,=]'

有没有办法检测除终点位置的数字和字母字符以外的所有特殊字符?

2 个答案:

答案 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 '%[@#$%]'