2012-07-22 12 views
5

"char()"関数と "ascii()"関数の欠如をカバーするsqliteの回避策はありますか?例えばsqlite char、ascii function

char(97) => 'a' 
ascii('a') => 97 
+4

まあ、SQLiteのは、実際にデータを挿入した後に処理を大量に実行するためのものではないので、なぜあなたにこの計算を行うされていません呼び出しコード? (C、C#、Java、C++など、これは非常に簡単です)。 –

答えて

4

私はあなたが本当に、あなたがASCIICHAR列と値の「ASCII表」表を作成することができますしたい場合は、仮定、および列、およびASCIIを移入表。次に、あなたの検索は、クエリ/サブクエリで実行することができます

SELECT ASCIICHAR FROM ASCIITABLE WHERE ASCIICODE = 97; 

本当にしかし、リチャード・J・ロスIIIのコメントはお金である - あなたはSQLiteのを使用している場合、あなたはおそらく、あなたの呼び出し元のコードからアクセスされている、「couldn計算はそこで行われますか?変換はそうではありませんが、sqliteのは、このクエリでASCIIを認識し

0

select * from segments where substr(name, 1, 1) < 'A' or substr(name, 1, 1) > 'Z' and substr(name, 1, 1) < 'a'; 

可能な結果:0-9とすべてのASCII < ''

2

この質問が書かれた時以来、SQLiteのは明らかCHAR()機能を追加しました:

SELECT CHAR(97) -- Result is 'a' 

しかし、私は他の方向に得ている最も近いHEX()機能である:

SELECT HEX('a') -- Result is 61 (hexadecimal, is equal to 97 decimal) 

小数点以下を取得するASCII文字の値は、複雑な作業を必要とするようです。

3

I knoこのwは手遅れですが:

SELECT unicode('a') --ascii('a') 
SELECT char(97)  --char(97) 

私はこれが役に立てば幸い:)