2012-04-24 5 views
3

私は、文字列私はIDのように97sqlのascii値と比較する行を繰り返しますか?

あるaのASCII値がどこにあるか見つけるために果物の行を反復処理する必要がある

id fruit 

1 apple 
2 mango 
3 banana 
4 grapes 
5 watermelon 

よう

を含む列をしました= 1個のりんごは'a'=97ので、私は誰もがどのように私に言うことができるASCII値97

と比較することにより、すべての 行のposition of character aを印刷したいが含まれていますそれぞれの行を繰り返してascii値97と比較しますか?

+1

値に 'banana'の 'a'のように指定された文字のインスタンスが複数含まれている場合、返されると思われるものは何ですか? – weenoid

+0

最初の位置の値のみ。 –

+0

私はあなたが "行"と "列"の理解を混乱させていると思います。id/fruitの各インスタンスは行であり、それらのそれぞれ(id、fruit)は列です。 –

答えて

3
SELECT CHARINDEX((CHAR(97), fruit) 
FROM MyTable 

これは文字列内の文字と所定のASCII値に割り当てられた文字を返しCHAR()関数の最初の位置を与えるCHARINDEX機能を使用します。

+0

'SELECT CHARINDEX( 'vishA'、ascii(65))'; ascii値65がAに関連付けられているときにこのクエリが0を返すのはなぜですか? –

+0

@ user1095881 - 'ASCII()はCHARをINTに変換するので、文字のASCII値が得られます。 'A 'を返すには' CHAR(65) 'を使ってみてください。 – MatBailie

+0

@Dems SELECT 'CHARINDEX( 'vishA'、char(65));'まだ0を返す –

関連する問題