【发布时间】:2016-11-13 06:05:44
【问题描述】:
我有一个具有不同长度值的数据。
例如我有 2 行数据:
CL-CI/PST/102/VII/2016
CL-CI/PST/0102/VII/2016
它们的区别是102(3位)和0102(4位)
我想在我的 SQL 检查中:
if (3Digits)
begin
....
end
else
begin
....
end
记录的数据格式不固定。只是没有固定在这个字符串 VII/2016 上(基于罗马数字/年的月份)。
我知道如何使用 LEN 计算字符串。但我的问题是当我选择前 1 个数据时。在我获得的前 1 位数据中,我想动态检查我从前 1 位获得的数据是否为 4 位/3 位。我被困住了。
【问题讨论】:
-
这是固定格式还是数据格式可能因记录而异?
-
对于这个字符串 VII/2016(基于月份(罗马数字)/年份)不固定
-
固定不是字符数,固定是你的字符串在第二个
/和第三个/之间,就像这篇文章中的stackoverflow.com/questions/17975150/… -
在
if 3digits块中发生了什么,它是如此具体,足以与所有其他场景分开?添加前导零? -
我想做序列号,但这取决于我得到的最后一条记录。例如我得到了 CL-CI/PST/102/VII/2016,所以下一个新的序列号是 CL-CI/PST/0103/VII/2016。例如,当我再次选择前 1 名时,我得到了 CL-CI/SPG/069/VII/2016,因此下一个序列号必须为 CL-CI/SPG/0068/VII/2016。 3 位数据是生产中的旧格式版本。我必须更改为 4 位数格式。此格式编号是每个分支的。这就是为什么我想检查使用 if 条件。但是任何想法都会受到欢迎,
标签: sql sql-server