-2

如何选择 varchar 列包含 SQL Server 视为符号的任何字符的行?符号可以在字符串中的任何位置。

是否有与 C#char.IsSymbol()函数等效的 SQL Server?

4

2 回答 2

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

最后一个的表现异常糟糕。

参考

于 2013-03-12T04:53:32.160 回答
0

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 开始的。

于 2013-03-12T04:47:42.117 回答