SQL中 常用的处理方法(处理空值、更新字段、去掉小数后的0、查询重复列)

Tableau字符串拼接实战:计算字段、空值处理与多源整合 字符串拼接是BI工具中连接离散字段、构建业务语义标签的基础能力,其本质是多字段值的类型安全组合与上下文感知生成。在Tableau中,该操作不依赖显式函数入口,而是依托计算字段、数据联接、并集与提取等分层机制实现,核心原理在于延迟计算、类型隐式转换与视图作用域控制。技术价值体现在提升字段可读性、支撑动态筛选、保障跨仪表板逻辑一致性,并为URL跳转、分层路径、数据水印等高阶场景提供底层支持。典型应用场景包括客户全名合成、SKU编码生成、多表关联标识拼接及时间智能标签构建。本文聚焦Tableau原生环境下的拼接实 阅读详情

 -- 一: 处理未查到的空值


 select
 case when exists(select EndPrice from T_stock where BOMSN='0109')
 then (select EndPrice from T_stock where BOMSN='0109')
 else 0 end


 --二:更新字段值


 --strNum 数量
 --strId  序号
 update T_buy_Pro set CompentNum=isnull(CompentNum,0)+'strNum' ,
 Status= case when isnull(BuyNumber,0) > isnull(CompentNum,0)+ 'strNum'
 then '部分收料' else '全部收料' end
 where BuyProID='strId'

  --三:去掉小数点有效数字后面的所有0

decimal类型,小数位数是6位,如果插入的数据为2.5,则检索时显示为2.500000

select   cast(2.500000       as     real)

----------建一個函數完成-------------   
  Create     Function     trun(@i     decimal(18,6))   
  returns       varchar(30)   
  begin     
  declare     @s     varchar(30)   
  set     @s=cast(@i     as   varchar(30))   
  while   len(@s)>0   
  begin           
            if   cast(substring(rtrim(@s),len(rtrim(@s))-1,1)     as     int)<>0         
            begin   
                    set     @s=substring(rtrim(@s),1,len(@s)-1)   
                    break   
            end   
            set     @s=substring(rtrim(@s),1,len(@s)-1)   
  end   
        return(@s)   
  end   
  ----------------------------結束函數-----------   
    
  select     dbo.trun(12.26000)                   ----------測試函數   
  ---------------輸出   
  12.26   
  drop   function     trun

函數修改一點點就行了   
  -----------建一個函數完成-------------   
  Create     Function     trun(@i     decimal(18,6))   
  returns       varchar(30)   
  begin     
  declare     @s     varchar(30)   
  set     @s=cast(@i     as   varchar(30))   
  while   len(@s)>0   
  begin           
            if   cast(substring(rtrim(@s),len(rtrim(@s))-1,1)     as     varchar)<>'0'         
            begin   
                      if   cast(substring(rtrim(@s),len(rtrim(@s))-1,1)     as     varchar)='.'         
                            set     @s=substring(rtrim(@s),1,len(@s)-2)   
                    else   
                              set     @s=substring(rtrim(@s),1,len(@s)-1)   
                    break   
            end   
            set     @s=substring(rtrim(@s),1,len(@s)-1)   
  end   
        return(@s)   
  end   
  ----------------------------結束函數-----------   
    
  select     dbo.trun(120.010)                   ----------測試函數   
  select     dbo.trun(1200.0000)                   ----------測試函數   
  ---------------輸出   
    
  drop   function     trun   

 --四:查询重复列 去除重复列且排序

select a,Ntitle from
(
select COUNT(1) as a, Ntitle from T_Acurity group by Ntitle
) va
where va.a>1

 

create view v_MaxOrder
as
select * from Tsaleordermain as a  where
not exists(select i_typeOrder from Tsaleordermain as b where a.n_orderSN= b.n_orderSN
and a.i_typeOrder< b.i_typeOrder)

--order by n_ordernum, i_typeOrder

--五:批量删除大于10天以前的记录

字段是时间 shijian

sql="delete from bot where dateadd(day,10,shijian)<getdate()";

 

 

 


DATEADD (datepart , number, date )

--六:数据库中的日期批量加上1年

 

update tb set dt = dateadd (yy, 1 ,dt)

 

 

 

 --七:Union与Union All的区别

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。


Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

可以在最后一个结果集中指定Order by子句改变排序方式。

 


A-B,
B-C,
D-E,
E-F。
求替代料关系出现的一个问题,上面两列数据,想变成。
1,A
1,B
1,C
2,D
2,E
2,F
就是互为替代料的分为一组。

 

方法一

 create table tb(c varchar ( 10 ))
insert tb
select ' A-B ' union all
select ' B-C ' union all
select ' D-E ' union all
select ' E-F '

with t1 as (
select left (c, 1 ) c1, right (c, 1 ) c2 from tb)

-- select c1,c2 from t1 where c1 not in (select c2 from t1)

,t2
as (
select c1,c2,rn = row_number() over ( order by getdate ()) from t1 where c1 not in ( select c2 from t1)
union all
select b.c1,b.c2,a.rn from t2 a,t1 b where b.c1 = a.c2
union all
select b.c2,b.c2,a.rn from t2 a,t1 b where b.c1 = a.c2 and b.c2 not in ( select c1 from t1)
)

select rn,c1 from t2
order by rn,c1

 

方法二

 

-- > 生成测试数据表: [tb]
IF OBJECT_ID ( ' [tb] ' ) IS NOT NULL
   
DROP TABLE [ tb ]
GO
CREATE TABLE [ tb ] ( [ c1 ] [ nvarchar ] ( 10 ), [ c2 ] [ nvarchar ] ( 10 ))
INSERT INTO [ tb ]
SELECT ' A ' , ' B ' UNION ALL
SELECT ' B ' , ' C ' UNION ALL
SELECT ' D ' , ' E ' UNION ALL
SELECT ' E ' , ' F '

-- SELECT * FROM [tb]

-- >SQL查询如下:
; WITH T AS
(
   
SELECT RN = ROW_NUMBER() OVER ( ORDER BY C1), *
   
FROM TB T
   
WHERE NOT EXISTS ( SELECT 1 FROM TB WHERE T.C1 = C2)
   
UNION ALL
   
SELECT B.RN,A. *
   
FROM TB A,T B
   
WHERE A.C1 = B.C2
)
SELECT DISTINCT RN,TYPE
FROM T
    UNPIVOT (TYPE
FOR C IN (C1,C2)) UNP

方法三

 

-- > 生成测试数据表: [tb]
IF OBJECT_ID ( ' [tb] ' ) IS NOT NULL
   
DROP TABLE [ tb ]
GO
CREATE TABLE [ tb ] ( [ c ] [ nvarchar ] ( 10 ))
INSERT TB
SELECT ' A-B ' UNION ALL
SELECT ' B-C ' UNION ALL
SELECT ' C-CC ' UNION ALL
SELECT ' CC-H ' UNION ALL
SELECT ' D-E ' UNION ALL
SELECT ' E-F '

-- SELECT * FROM [tb]

-- >SQL查询如下:
; WITH TA AS
(
   
SELECT CAST ( LEFT (C, CHARINDEX ( ' - ' ,C) - 1 ) AS VARCHAR ( 100 )) C1,
       
CAST ( STUFF (C, 1 , CHARINDEX ( ' - ' ,C), '' ) AS VARCHAR ( 100 )) C2
   
FROM TB
)
,T
AS
(
   
SELECT RN = ROW_NUMBER() OVER ( ORDER BY C1), * FROM TA T
   
WHERE NOT EXISTS ( SELECT 1 FROM TA WHERE T.C1 = C2)
   
UNION ALL
   
SELECT B.RN,A. * FROM TA A,T B WHERE A.C1 = B.C2
)
SELECT DISTINCT RN,TYPE
FROM T
    UNPIVOT (TYPE
FOR C IN (C1,C2)) UNP

方法四

SET NOCOUNT ON
DECLARE @a TABLE (a VARCHAR ( 10 ),id INT IDENTITY )
INSERT @a SELECT ' A-B '
union all select ' B-C '
union all select ' D-E '
union all select ' E-F '
union all select ' F-G '

DECLARE @s TABLE (id INT ,a VARCHAR ( 20 ),c VARCHAR ( 20 ))

INSERT @s
SELECT id,s,a FROM ( SELECT a, LEFT (a, 1 ) s,id FROM @a a
UNION ALL
SELECT a, RIGHT (a, 1 ) s,id from @a a)aa
ORDER BY id

DECLARE @i INT , @m INT
SELECT @m = 1 , @i = 2
DECLARE @t TABLE (id INT ,a VARCHAR ( 20 ),c VARCHAR ( 20 ))
INSERT @t SELECT * FROM @s WHERE id = @m

WHILE EXISTS ( SELECT 1 FROM @s WHERE id = @i )
BEGIN
   
IF NOT   EXISTS ( SELECT 1 FROM @s a INNER JOIN @t t ON charindex (a.a,t.c) > 0   AND a.id = @i )
       
SET @m = @m + 1
   
   
INSERT @t SELECT @m ,a,c FROM @s WHERE id = @i        
   
SET @i = @i + 1
END
SELECT DISTINCT id,a FROM @t

 

 

sql语句将数字小数位后面多余的0去掉写法 select CONVERT(FLOAT,0.600)  结果为0.6即去掉小数位后无意义的0 阅读详情

相关推荐

sql语句,decimal字段,去除小数点后多余0

文章目录前言一、直接上效果图二、数据库decimal字段,去除小数点后01.sql语句如下 前言 数据库是decimal字段的,页面往往需要显示有效的字符,那么后面多于的0,就很扎眼了,后台做转换,浪费资源,sql中直接处理! 一、直接上效果图 转换成去小数点后0的字符串 转换成去小数点后0的加上单位 字符串 页面显示 二、数据库decimal字段,去除小数点后0 1.sql语句如下 select HAA014, (case when cast(HAA014 as float) > ca

weixin_40231090的博客 9394

Sql中想把小数点后多余的0去掉,怎么办?

Sql中想把小数点后多余的0去掉,怎么办? select 5000/10000.0 --想变成0.5 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

qq719861388的博客 1万+

SQLServer多种去除尾数多余的0

解决sqlserver,float去除后面的零超过四位会转换成特殊的编码格式的问题,无限制去除后面多余的0

SQL去掉小数点有效数字后的所有0

第一种方法 select cast(2.5000000000000 as real) select cast(2 as real) select cast(2.00000 as real) 第二种方法 CREATE function [dbo].[ClearZero](@inValue varchar(5...

QQQ2556338777的博客 3356

手把手教你搞定6脚三位一体数码管的驱动(附C语言源码与Visual Studio调试技巧)

本文详细解析了6脚三位一体数码管的驱动原理与实战技巧,包括引脚复用、动态扫描时序、Visual Studio模拟调试及单片机实现。通过C语言源码示例和调试技巧,帮助开发者快速掌握非标准数码管的驱动方法,提升硬件开发效率。

weixin_30613727的博客 589

librealsense2 camera.so: undefined symbol:ZN2cV3MatC1EV解决笔记记录

先参考的这个兄弟的办法虽然没解决但是提供了大方向感谢; realsenseD400系列相机报错:undefined symbol: _ZN2cv3MatC1EiiiRKNS_7Scalar_IdEE解决方案 后解决办法参考 No GPU usage on jetson xavier NX · Issue #2326 · IntelRealSense/realsense-ros · GitHubOpenCV_DIR" to a directory containing one of the above f

梁俊星的博客 3514

SQL结构化查询

SQL是访问和操作数据库的标准语言。

2402_87297436的博客 2345

本科双非的计算机考研择校注意点——经验贴

一战一志愿上岸某211的电子信息专硕。之前在某乎也发过帖子。但现在用优快云,所以把相关的心得再发出来仅供大家参考。 首先,我认为最重要的是你为什么要考研? 不管你是为了混一个文凭将来好进大厂,还是为了真正搞学术或者学知识,你要知道你自己的目标,只有坚定自己的目标,才有动力去走完这段复习的历程。真正的考研,是很苦的。如果你是为了逃避大四面临的就业才选择考研,并且还浑浑噩噩不当回事,那我劝你放弃,不如踏踏实实学点技术去找实习。那从我自己出发,我是认为自己本科双非院校且自己四年间没有学到什么专业方面的技能,

m0_56698268的博客 3164

mysql中常用sql(持续补充中)

mysql中常用sql(持续补充中) 时间转字符串: date_format(now(), '%Y-%m-%d'); 字符串转时间: str_to_date('2016-01-02', '%Y-%m-%d %H'); 保留小数点后两位: (四舍五入):convert(4545.1366,decimal); (截取):truncate(4545...

高振的博客 306

车道线检测1.0(Python+Opencv基础版)

车道线检测是指在道路上自动检测和识别车道线的过程。车道线是道路上的标记,用于指示车辆行驶的方向和位置。 通过对车道线进行检测和识别,自动驾驶和智能驾驶系统可以实现车辆的自动导航、车道保持、车道偏离警告等功能。

Dream_orz的博客 4262

【低空经济】低空无人机公共测试场与验证基地设计方案

公共测试场与验证基地是为低空无人机相关技术的研发、测试与应用提供一个系统性的平台。在无人机产业蓬勃发展的背景下,建设一个配备完善、功能齐全的公共测试场与验证基地显得尤为重要。该基地不仅可以作为无人机的测试和验证场地,还可以为相关企业、科研机构以及政府部门提供技术支持和服务。因此,为此基地的设计方案必须综合考虑功能性、安全性、灵活性与可持续性等多方面的因素。首先,公共测试场需划分为多个专用区域,以便满足不同类型无人机的测试需求。这包括低空飞行区域、紧急着陆区、操控模拟区和监测与数据采集区等。

2502_92579126的博客 1596

数据库系统概论笔记(第三章 SQL)——持续更新,争取每周一章

数据库系统概论-第三章第三章 SQL3.1 SQL语言概述3.2 SQL数据定义3.2.1 基本类型3.2.2 基本模式定义3.3 SQL查询的基本结构3.3.1 单关系查询3.3.2 多关系查询3.3.3 自然连接3.4 附加的基本运算3.4.1 更名运算3.4.2 字符串运算3.4.3 select子句中的属性说明3.4.4 排列元组的显示次序3.4.5 where子句谓词3.5 集合运算3.5.1 并运算3.5.2 交运算3.5.3 差运算3.6 空值3.7 聚集函数3.7.1 基本聚集3.7.2 分

想要上南大的同学的博客 2077

如何用matlab扫频法测考虑频率耦合的并网逆变器的序阻抗,如何实现?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1192

一行SQL代码能做什么?

点击上方SQL数据库开发,关注获取SQL视频教程SQL专栏SQL数据库基础知识汇总SQL数据库高级知识汇总最近在知乎上看到一个问题:一行代码可以做什么?答题者数万计,都是一些非常“高端”...

SQL数据库开发 534

玩转 InternVL3.5 轻量级实战:从部署到优化的全记录

玩转 InternVL3.5 轻量级实战:从部署到优化的全记录

jacke121的专栏 626

YOLO26优化:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 363

mysql查询常用方法总结

mysql查询常用方法总结 round() round() 遵循四舍五入把原值转化为指定小数位数,如:round(5.05,0) = 5;round(5.55,0)=6, floor() floor()向下舍入为指定小数位数 如:floor(5.05,0)= 5;floor(5.55,0) = 5 celling() ceiling()向上舍入为指定小数位数 如:ceiling(5.05,0) = 6;ceiling(5.55,0)=6 ifnull() ifnull()接受两个参数,第一个参数是要判断空值

zt的博客 764

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SQL常用查询语句

SQL 语句 您需要在数据库上执行的大部分工作都由 SQL 语句完成,在使用SQL语句之前,一定要记住,SQL 对大小写不敏感! SQL 语句后面的分号? 某些数据库系统要求在每条 SQL 命令的末端使用分号。分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句。 SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操...

lyj243719866的博客 368

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SQL结构化查询语言

CREATE TABLE users ( -- 在DB数据库下新建一个user表 id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, -- null值 表示是一个不确定的值 birth_date DATE, phone VARCHAR(11) NOT NULL UNIQUE )ENGINE=InnoDB DEFAULT CHARSET=utf8;给表中所有字段插入记录的时候,id自动增长型主键的值从0开始。

weixin_51810605的博客 790

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

第八章、SQL的结构化查询

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。主键:primary key 在一个表中至少应该有这样一个字段,这个字段所对应的值一不能有重复,二不能为空,这个字段所对应的值能够起到唯一标识表中每一条记录的作用。在一个表中至少应该有这样一个字段,这个字段所对应的值一不能有重复,二不能有空间,它能够起到唯一标识表中记录的作用。●foreign key外键:在一个表中某一个字段它不是当前这个表的主关键字,但是它却是另外一个表的主关键,我们在当前这个表,把此字段称为是当前表的外部关键字。

l030803xy的博客 1622

sql-查询

为了将一个或多个表中合适的数据生成报表或在窗体中显示,可以先根据需要建立一个所需要数据的查询,将查询的结果作为报表或窗体的数据源。由逻辑运算符和逻辑型产量、逻辑型对象标识符、返回逻辑型数据的函数和关系运算符组成。由字符运算和字符型常量、字符型对象标识符、返回值为字符型数据的函数等构成的表达式。number可以是数值型常量、数值型变量、 返回数值型数据的函数和数学表达式。对象标识符可以是表中的字段名称、窗体、报表名称、控件名称、属性名称等。表达式由运算对象、运算符和括号组成,运算对象包含常量、函数和标识符。

2402_82898401的博客 1192

SQL结构化查询语言 查询操作

内联:select e.ename as 雇员姓名, e.sal as 雇员工资, d.dname as 部门名称, m.ename as 领导姓名, m.sal as 领导工资 from emp e inner join emp m on e.mgr = m.empno inner join dept d on e.deptno = d.deptno;select concat(‘编号为’,empno‘的雇员,姓名为’,ename,‘职位为’,job)from emp;

2401_87501988的博客 404

SQL基础知识笔记

SQL是一门大小写不敏感的语言,语句以英文半角分号(;)结尾,多行注释使用 /* ……*/,单行注释使用 – ……关键词:grant(赋予权限)、revoke(取消权限)、commit(提交)、rollback(回滚)*内层的查询为子查询,外层的查询为主查询。

Mr丶·Zhou博客 2589

SQL Server数据库的T-SQL查询语句

一、SQL简介 在进行数据管理时,使用SSMS进行数据维护有可视化、方便的优点,但是在批量维护或重复维护数据时,每次都需要使用SSMS不但不方便,而且容易出错。通过编写SQL语句来维护数据库便于解决重复或批量维护数据的难题。 1、SQL和T-SQL SQL是Structured Query Language的缩写,即结构化查询语言。SQL广泛地被采用说明了它的优势,它使全部用户,包括应用程序员、数...

:Struggle. 5232
上一篇: 模式窗体关闭后调用父类窗体的方法
下一篇: Ajax实现的明细去除重复 datatable去除重复
wangyangsudo
博客等级 码龄17年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值