2012-07-22 15 views
5

¿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 
+4

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). –

Respuesta

4

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í?

0

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'

2

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 ...

3

I kno w esto es demasiado tarde, pero:

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

Espero que esto ayude :)

Cuestiones relacionadas