惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
S
SegmentFault 最新的问题
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
J
Java Code Geeks
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI

雾非雾 - SQL语句

SQL 语句之 REPLACE 函数
SQL 语句之取文本内容
花非花 · 2022-10-18 · via 雾非雾 - SQL语句

SQL Server

工作需要,前几天要尝试把数据库中的一张表的两列加上后缀内容标识,摸索了一下,命令如下:

先查看表 BAK1 中,BAK17 有效期设置为 9999-06-01 到 9999-06-30 之间的内容。

select * from BAK1 where BAK17 between '9999-06-01 09:45:05.000' and '9999-06-30 09:45:05.000' 

这个用来确定要修改的范围,预先查看一下,避免修改错误。
判断内容没问题后,修改表 BAK1 的 BAK05 列;在以列原先内容的基础上加上后缀标识“-作废”,命令如下:

update BAK1 set BAK05 = BAK05+'-作废' where BAK17 between '9999-06-01 09:45:05.000' and '9999-06-30 09:45:05.000'

现在想尝试还原,思路是:取文本左边(文本内容,开始字符位,文本内容总长度-“-作废”的文本长度)
尝试了几次,最终命令如下:

update BAK1 set BAK05 = SUBSTRING( BAK05,0,DATALENGTH(BAK05)-4) where BAK17 between '9999-06-01 09:45:05.000' and '9999-06-30 09:45:05.000'

结果还算成功,以我当下的编程水平,倒也判断不出语句是否冗余。