去除字符串前面或者后面多余的0--去掉字符串后面多余的0select rtrim('10011000000', '0');运行结果:10011--去掉字符串前面多余的0select ltrim('000100110000', '0');运行结果:100110000...
第一种方法就是将字段转换成int,大概就是Convert(int,xxx)
备注一下,今早上凌晨3点45分,经理给我打电话,说服务器上挂了。就是因为客户那边同步数据,结果那字段竟然来了个“STOC”,FUCK !!!
第二种方法就是截取
SELECT SUBSTRING(po.GoodsRecipient,(PATINDEX('%[^0]%',PO.GoodsRecipient)),...
因为这面的数据库比较多,数据也比较多,但是有个遗留的历史数据问题;就是某个
字符串
前面
有个英文逗号;
现在需求就是要
去掉
这个英文逗号,用脚本跑数据库也行,但是这里用
sql
语句来
去掉
;
以下是完整的代码,这里做个记录
DECLARE @cursor CURSOR;
DECLARE @id int;
DECLARE @Staging varchar(max);
select 5500/10000.0 --想变成0.55
select 5550/10000.0 --想变成0.555
select 5555/10000.0 --想变成0.5555
其结果分别为:0.5000000 0.5500000 0.5550000 0.5555000
一、如果想
去掉
数字5
后面
多余的0 ,需要转化一下:
select CONVERT(FLOAT,5000/10000.0
2. 使用 GROUP_CONCAT 函数将每个子串合并成一个
字符串
,并用逗号分隔。
3. 使用 GROUP BY 子句将每个
字符串
分组,然后将每个组合并成一个新的
字符串
。
示例代码如下:
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(str, ',', n), ',', -1) AS val
table1
INNER JOIN (
SELECT 1 n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
ON CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, ',', '')) >= n - 1
GROUP BY
其中,table1 是包含
字符串
列的表,str 是
字符串
列的名称,n 是需要分割的子串数量,id 是分组依据的列。