Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 修剪数据集中长度大于x的前导0_Sql_Sqlite_Dataset_Querying - Fatal编程技术网

Sql 修剪数据集中长度大于x的前导0

Sql 修剪数据集中长度大于x的前导0,sql,sqlite,dataset,querying,Sql,Sqlite,Dataset,Querying,以这张桌子为例 表1: Name. ID David 00513 George 0523 Carmen 3216 在这个表中,我只想修剪David的前导0,因为他的ID大于4位。我不想为乔治修剪前导的0 在SQL中执行此操作的最佳方法是什么?最简单的方法是: select right(id, 4) 如果您担心ID长度超过4个字符,但初始字符不为零: select (case when length(id) > 4 then replace(ltrim(re

以这张桌子为例

表1:

Name.  ID
David 00513
George 0523
Carmen 3216
在这个表中,我只想修剪David的前导0,因为他的ID大于4位。我不想为乔治修剪前导的0
在SQL中执行此操作的最佳方法是什么?

最简单的方法是:

select right(id, 4)
如果您担心ID长度超过4个字符,但初始字符不为零:

select (case when length(id) > 4 
             then replace(ltrim(replace(id, '0', ' ')), ' ', '0')
             else id
        end)

最简单的方法就是:

select right(id, 4)
如果您担心ID长度超过4个字符,但初始字符不为零:

select (case when length(id) > 4 
             then replace(ltrim(replace(id, '0', ' ')), ' ', '0')
             else id
        end)

如果您不关心初始非零被切碎,那么

select substr(ID,-4);
应该有用。如果首字母不为零的数字可能超过4位,则使用

 select printf('%04d', ID);

(假设ID中的所有字符都是数字)

如果您不关心初始非零被切碎,那么

select substr(ID,-4);
应该有用。如果首字母不为零的数字可能超过4位,则使用

 select printf('%04d', ID);

(假设ID中的所有字符都是数字)

MySQL还是SQLite?两者都是不同的RDBMSwA,都在寻找解决方案。修复了发布到sqlite可能会导致MySQL或sqlite混乱的问题?两者都是不同的RDBMSwA,都在寻找解决方案。修复了发布到sqlite的问题,因为它可能会导致混乱