"char()"関数と "ascii()"関数の欠如をカバーするsqliteの回避策はありますか?例えばsqlite char、ascii function
:
char(97) => 'a'
ascii('a') => 97
"char()"関数と "ascii()"関数の欠如をカバーするsqliteの回避策はありますか?例えばsqlite char、ascii function
:
char(97) => 'a'
ascii('a') => 97
私はあなたが本当に、あなたがASCIICHAR
列と値の「ASCII表」表を作成することができますしたい場合は、仮定、および列、およびASCIIを移入表。次に、あなたの検索は、クエリ/サブクエリで実行することができます
SELECT ASCIICHAR FROM ASCIITABLE WHERE ASCIICODE = 97;
本当にしかし、リチャード・J・ロスIIIのコメントはお金である - あなたはSQLiteのを使用している場合、あなたはおそらく、あなたの呼び出し元のコードからアクセスされている、「couldn計算はそこで行われますか?変換はそうではありませんが、sqliteのは、このクエリでASCIIを認識し
:
select * from segments where substr(name, 1, 1) < 'A' or substr(name, 1, 1) > 'Z' and substr(name, 1, 1) < 'a';
可能な結果:0-9とすべてのASCII < ''
sqlite3のユーザーを実装するために些細なことだろうC言語での変換や、sqlite3のユーザ関数をサポートする別の言語ラッパー(例えばPythonで)を実行するascii()やchar()関数
http://www.sqlite.org/c3ref/create_function.html
https://docs.python.org/2/library/sqlite3.html
あなたは、このサイト上にあるのsqlite拡張ライブラリに基づいて、ASCIIの独自のバージョンを実装することができます:http://sqlite.1065341.n5.nabble.com/Extension-functions-for-SQLite-in-C-for-free-td18942.html
私はない、特にあなたけれども、機能を追加するには、このコードを変更しました。それはかなり簡単です。
この質問が書かれた時以来、SQLiteのは明らかCHAR()
機能を追加しました:
SELECT CHAR(97) -- Result is 'a'
しかし、私は他の方向に得ている最も近いHEX()
機能である:
SELECT HEX('a') -- Result is 61 (hexadecimal, is equal to 97 decimal)
小数点以下を取得するASCII
文字の値は、複雑な作業を必要とするようです。
I knoこのwは手遅れですが:
SELECT unicode('a') --ascii('a')
SELECT char(97) --char(97)
私はこれが役に立てば幸い:)
まあ、SQLiteのは、実際にデータを挿入した後に処理を大量に実行するためのものではないので、なぜあなたにこの計算を行うされていません呼び出しコード? (C、C#、Java、C++など、これは非常に簡単です)。 –