T-SQL 去除特定字段的前导0

在工作过程中遇到一个需求,要从特定字段中删除前导零,这是一个简单的VARCHAR(10)字段。 例如,如果字段包含“00001A”,则SELECT语句需要将数据返回为“1A”。如果是其中只包含0,比如“0000” 返回值为“0”.

解决方案:

select CASE

WHEN ColumnName = substring(ColumnName, patindex(‘%[^0]%‘,ColumnName), 10)

THEN ‘0‘

ELSE substring(ColumnName, patindex(‘%[^0]%‘,ColumnName), 10)

END

时间: 2024-10-10 09:49:59

T-SQL 去除特定字段的前导0的相关文章

SQL SERVER 字段统一补0方法

在SQL SERVER 2008R2的[AdventureWorks2008R2]示例数据库中,看到以下字段统一补0方法. 将CustomerID前面加0转变为AccountNumber字段. CREATE TABLE [Sales].[Customer]( [CustomerID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [PersonID] [int] NULL, [StoreID] [int] NULL, [TerritoryID

字符串大数相加,转换,去除前导0,字符串数值比较函数模板

string S(ll n){stringstream ss;string s;ss<<n;ss>>s;return s;} ll N(string s){stringstream ss;ll n;ss<<s;ss>>n;return n;} string rm0(string s){// 去除前导0函数 int i; for(i=0;i<s.size()-1;i++) if(s[i]!='0') break; return s.substr(i);

sql去除重复语句

转自芙蓉清秀的BLOG http://blog.sina.com.cn/liurongxiu1211 sql去除重复语句 (2012-06-15 15:00:01) sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ************************************************************************************ 1.查

二维数组去除特定键的重复项

<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action { //原始数据 /*Array ( [0] => Array ( [ap] => 23 [ac] => 569418 ) [1] => Array ( [ap] => 23 [ac] => 569520 ) [2] => Array ( [ap] => 23 [ac] => 569533 ) )*/ //除去重复值后的数据 /*

创建与删除SQL约束或字段约束

1)禁止所有表约束的SQLselect 'alter table '+name+' nocheck constraint all' from sysobjects where type='U'2)删除所有表数据的SQLselect 'TRUNCATE TABLE '+name from sysobjects where type='U'3)恢复所有表约束的SQLselect 'alter table '+name+' check constraint all' from sysobjects w

SQL server 添加字段问题

select a.ADJUSTMENT_ID,a.ADJUSTMENT_CODE into tmp20161103 from adjustment_code a ADJUSTMENT_ID会从源表中保留自动增长 select * from tmp20161103 添加列的语法: alter table [表名] add [字段名] 字段属性 default [值] 添加列tt,默认值为0 alter table tmp20161103 add tt int default 0 插入行数据 ins

php导出CSV时,超长数字精度丢失问题与前导0的字符串丢失0的问题解决

php生成的CSV有时候会遇到两个特殊情况: 1.输出的字段中,含有超长数字(18位的数字)比方身份证:122121197410180016,就算输出时字段加上"",还是会被识别成数字.而且丢失精度,后面的4位会变成0.象这个样子122121197410180000 2.输出的字段中.含有前导0的数字字符串,会被强制丢掉前导0.比方:01082151122,或者00001,00002,系统会强制识别成 1082151122,1,2这种数字. 针对上面的问题,仅仅能说excel太邪恶了,

SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

原文:SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 按照ASCII码, SELECT char(64) 例如64 对应 @,则 SELECT REPLACE('[email protected]', CHAR(64), 'kk'); 则结果为 abckkqq.com 依此类推, 去掉其他特殊符号,参考ASCII码对照表, 去掉tab符号为 select REPLACE('要替换的字符或列名',char(9),'替换的目标字符') 去掉空格符号为 select REPLACE('要

sql查询一个字段不同值并返回

sql SELECT COUNT(字段),分组字段,SUM(字段),SUM(字段) FROM 表 GROUP BY 分组字段 java EntityWrapper<ProjectEntity> pp= new EntityWrapper<ProjectEntity>(); pp.eq("depcode", community); int proc = projectService.selectCount(pp); pp.setSqlSelect("CO