如何选择 varchar 列包含 SQL Server 视为符号的任何字符的行?符号可以在字符串中的任何位置。
是否有与 C#char.IsSymbol()
函数等效的 SQL Server?
如何选择 varchar 列包含 SQL Server 视为符号的任何字符的行?符号可以在字符串中的任何位置。
是否有与 C#char.IsSymbol()
函数等效的 SQL Server?
假设您对“符号”的定义是任何非字母数字字符。
您需要使用 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
最后一个的表现异常糟糕。
参考
C#
U 可用于Indexof()
搜索第一次出现的符号car
并与 0 进行比较以检查它是否存在于列值的开头。
您可以使用LastIndexof()
搜索符号的最后出现car
并与 inputstring.Length-3 进行比较以检查最后是否存在汽车。这里 inputstring 是列值。
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 开始的。