SQL Server が記号と見なす文字が varchar 列に含まれている行を選択するにはどうすればよいですか? 記号は、文字列のどこにでも置くことができます。
char.IsSymbol()
C#関数に相当する SQL Server はありますか?
SQL Server が記号と見なす文字が varchar 列に含まれている行を選択するにはどうすればよいですか? 記号は、文字列のどこにでも置くことができます。
char.IsSymbol()
C#関数に相当する SQL Server はありますか?
ここで、「記号」の定義が英数字以外の文字であると仮定します。
LIKE
SQL 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
ラストの出来が異常に悪い。
参考文献
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ベースです。