-2

SQL Server が記号と見なす文字が varchar 列に含まれている行を選択するにはどうすればよいですか? 記号は、文字列のどこにでも置くことができます。

char.IsSymbol()C#関数に相当する SQL Server はありますか?

4

2 に答える 2

5

ここで、「記号」の定義が英数字以外の文字であると仮定します。

LIKESQL Server の機能を使用する必要があります。

これにより、先頭、末尾、および任意の場所にそれぞれ英数字以外を含む行が検索されます。

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と比較して、列の値の先頭にシンボルが存在するかどうかを確認できます。

Uを使用LastIndexof()して、シンボルの最後の出現を検索しcar、inputstring.Length-3と比較して、車が最後に存在するかどうかを確認できます。ここで、inputstringは列の値です。

SQLServer関数を
使用してシンボルの出現位置を検索しますCHARINDEX()car

Select * from Table
where CHARINDEX('car',column_name)=1 or CHARINDEX('car',column_name) = LEN(column_name)-3


注:CHARINDEX()によって返される開始位置は、0ベースではなく、1ベースです。

于 2013-03-12T04:47:42.117 に答える