T-SQLでは、指定されたvarchar文字または文字列全体が大文字であるかどうかを確認するにはどうすればよいですか?理想的には、文字が大文字であるかどうかをテストするための関数を書いておき、後でそれを汎用のvarcharに適用することができます。アルファベット以外の文字に対してはfalseを返します。私は英語の文字だけに興味があります。
私は、SQL Management StudioでT-SQLで働いている、と私はこの方法でテーブルから小文字で始まるレコードを引っ張って試してみました:0のレコードを返します
select * from TABLE
where SUBSTRING(author,1,1) != LOWER(SUBSTRING(author,1,1))
を、私は知っています大文字と小文字で始まるレコードがあります。
おかげ
EDIT:照会するために使用するための最も効率的な方法であると思われるpodiluskaとjoachim-isaksoonの両方が、(どちらの方法は、私の目的のために働く)私の質問に、正常に答えている誰かの心は説明するであろうから大文字で始まる、または大文字で始まらない著者とのレコードを除外するための多数のレコードを持つテーブル?照合
例えば使用
"非英字"の言語ですか? 'Π'の真偽を返しますか? (大文字 'π') –
マーティンありがとう、私は私の質問を改善しました。私はそれが非英語のアルファベット文字のために何を返すか気にしない。 – Danzomida
EDITパートへの回答:これは無関係である必要があります。両方のクエリが同じように動作するはずです。どちらの場合でも、テーブル全体をスキャンし、各行の 'author'の値を取得する必要があります。これはクエリ時間の99%を要します。 'LOWER()'、 'UNICODE()'のような関数は意味がないので、意味がありません。どちらを選んでも違いはありません。それでも、あなたの実際のデータで両方のクエリをテストし、どちらかがうまく機能するかどうかを確認することをお勧めします。 –