¿Hay algún trabajo en sqlite para cubrir la falta de función "char()" y "ascii()"?sqlite char, función ascii
Por ejemplo:
char(97) => 'a'
ascii('a') => 97
¿Hay algún trabajo en sqlite para cubrir la falta de función "char()" y "ascii()"?sqlite char, función ascii
Por ejemplo:
char(97) => 'a'
ascii('a') => 97
supongo, si realmente quisiera, podría crear una tabla "Tabla ASCII" de los valores de una columna ASCIICHAR
, y una columna , y rellenarla con el ASCII mesa. A continuación, sus operaciones de búsqueda podrían llevarse a cabo en consultas/subconsultas:
SELECT ASCIICHAR FROM ASCIITABLE WHERE ASCIICODE = 97;
Realmente sin embargo, el comentario de Richard J. Ross III está en el dinero - si está utilizando SQLite, es probable que esté accediendo a ella a través de su código de llamada, no podía' t el cálculo se hace allí?
Aunque la conversión no es probable, no obstante, reconoce sqlite ASCII en esta consulta:
select * from segments where substr(name, 1, 1) < 'A' or substr(name, 1, 1) > 'Z' and substr(name, 1, 1) < 'a';
resultados posibles: 0-9 y todos ASCII < 'a'
Sería trivial para aplicar usuario sqlite3 funciones ascii() y char() que realizan las conversiones en C o a través de otro envoltorio de lenguaje que admite funciones de usuario sqlite3 (por ejemplo, en python).
http://www.sqlite.org/c3ref/create_function.html
https://docs.python.org/2/library/sqlite3.html
Se podría implementar su propia versión de ASCII basado en la biblioteca de la extensión SQLite que se encuentra en este sitio: http://sqlite.1065341.n5.nabble.com/Extension-functions-for-SQLite-in-C-for-free-td18942.html
he modificado el código para agregar funciones, no específicamente la suya, aunque . Debería ser bastante sencillo.
Desde el momento esta cuestión fue escrito, SQLite, evidentemente, ha añadido una función CHAR()
:
SELECT CHAR(97) -- Result is 'a'
Sin embargo, lo más cerca que he recibido en la otra dirección es con la función HEX()
:
SELECT HEX('a') -- Result is 61 (hexadecimal, is equal to 97 decimal)
La obtención de un valor de carácter decimal ASCII
parece que requeriría algún trabajo enrevesado ...
I kno w esto es demasiado tarde, pero:
SELECT unicode('a') --ascii('a')
SELECT char(97) --char(97)
Espero que esto ayude :)
Bueno, SQLite no está realmente destinado a la realización de grandes cantidades de procesamiento después de la inserción de los datos, ¿por qué no hacer este cálculo en su código de llamada? (En C, C#, Java, C++ y muchos otros, esto es ridículamente fácil). –