ClientNumberの最初の文字がアルファベットの文字でないすべての行を表示するには、どうすればよいですか?varcharの最初の文字は文字列ですか?
select * from Table
where Left(ClientNumber,1) <> A to Z
ClientNumberの最初の文字がアルファベットの文字でないすべての行を表示するには、どうすればよいですか?varcharの最初の文字は文字列ですか?
select * from Table
where Left(ClientNumber,1) <> A to Z
あなたは、単に行うことができます。
where left(clientNumber, 1) < 'A' or left(clientNumber, 1) > 'Z'
か:比較があるため、文字ケースのトリッキーになること、しかし、
where left(clientNumber, 1) not between 'A' and 'Z'
注意してください。あなたが望むかもしれませんが、1バイト文字と仮定すると:私は、インデックスを使用したい場合は
:
where ascii(left(clientNumber, 1)) not between ascii('A') and ascii('Z')
EDITは
where clientNumber < 'A' or clientNumber > 'Z['
をしかし、私は、インデックスが本当にあるので、わからないんだけどこの場合には便利です。あなたは好きでは使用することができます
:
SELECT *
FROM Table
WHERE ClientNumber NOT LIKE '[A-Za-z]%'
これは最初の2文字だけをチェックしています。 –
[A-Za-z]に更新されました – meisen99
は
SELECT
*
FROM
dbo.MyTable mt
WHERE
mt.ClientNumber LIKE '[^a-Z]%'
...このようにそれを試してみてくださいあなたが 'A' の間 '上段(左(clientNumber、1))ではないもしかしてと'Z' '、小文字に対応しますか?私はまた、ポータブルなので 'between'ソリューションが好きです(すべてのDBが正規表現をサポートしているわけではありません)。 – Bohemian
関数にClientNumberを置くと、SARGEablie以外のクエリになります。 –