如何选择varchar列包含SQL Server认为符号的任何字符的行?符号可以是字符串中的任何位置。
是否存在与C#char.IsSymbol()
函数等效的SQL Server?
答案 0 :(得分:5)
假设您对“符号”的定义是任何非字母数字字符。
您需要使用SQL Server的LIKE
功能。
这将分别在开头,结尾和任何地方找到包含非字母数字的行。
Select * from MyTable where MyColumn like '[^a-zA-Z0-9]%' -- Starts With
或
Select * from MyTable where MyColumn like '%[^a-zA-Z0-9]' -- Ends With
或
Select * from MyTable where MyColumn like '%[^a-zA-Z0-9]%' -- contains
最后一个的表现异常糟糕。
<强>参考强>
答案 1 :(得分:0)
<强> C#强>
您可以使用Indexof()
搜索符号car
的第一次出现,并与0进行比较以检查它是否出现在列值的开头。
您可以使用LastIndexof()
搜索符号car
的最后一次出现,并与inputstring.Length-3进行比较,以检查最后是否存在汽车。这里的inputtring是列值。
SQL Server
使用CHARINDEX()
函数查找符号car
Select * from Table
where CHARINDEX('car',column_name)=1 or CHARINDEX('car',column_name) = LEN(column_name)-3
注意: CHARINDEX()返回的起始位置是从1开始的,而不是从0开始。