我很好奇如何以最通用的方式正式为SQLite模拟RPAD和LPAD函数。目标是能够做到
LPAD(column, character, repeat) RPAD(column, character, repeat)
对于非固定表列column,character,repeat。如果character和repeat是已知常数,那么这将是一个好的可行的解决方案:
column
character
repeat
但是,如果上面的代码应该这样执行:
SELECT LPAD(t.column, t.character, t.repeat) FROM t SELECT LPAD(t.column, some_function(), some_other_function()) FROM t SELECT LPAD(t.column, :some_bind_variable, :some_other_bind_variable) FROM t
LPAD一般如何模拟此功能?我迷失了这种可能性:
LPAD
一个相关的问题:
@ user610650解决方案的一个更简单的版本,使用hex()代替quote(),并且除了char padding外还可以使用字符串padding:
X = padToLength Y = padString Z = expression select Z || substr( replace( hex(zeroblob(X)), '00', Y ), 1, X - length(Z) );