由于昨天搬家,经理感觉有点对不住了,呵呵,其实 是我自己对不住了,
上午就很辛苦的将算法写好,在自己的思路和流程下一个一个数据库都在我的手下形成了编码,其实上午根本没有忙什么都在想怎么搞了,下午才真正的将它给弄好,下面讲解下我自己听哈子。
首先。我们将原来的表请出来一个并且在里面添加一个字段,然后进行自动的编写代号。好下面来写具体的内容。
首先在我的思路里面有要在不同的情况下执行不同的方法,所以我真正的用到了len函数。
其实len函数也很简单,我是这么写的

len(@item_clsno)

也就是求出@item_clsno的变量的长度。

那么我们开始我们的具体的思路了,开始i先备份一张表

SELECT * INTO dbo.table_zong1
FROM dbo.table_zong
ORDER BY item_clsno

然后我们就在这个表上操作咯

DECLARE YOUBIAO CURSOR FOR
SELECT [id],[item_clsno]
FROM dbo.table_zong1


open YOUBIAO
declare 
@id bigint,
@item_clsno varchar(510)

fetch next from YOUBIAO
into @id,@item_clsno
if len(@item_clsno)=3
 begin
  update dbo.table_zong1
  set item_subno=@item_clsno+'0'
  where [id]=@id
 end
else if len(@item_clsno)=2
 begin 
  update dbo.table_zong1
  set item_subno=@item_clsno+'00'
  where [id]=@id
 end
 else if len(@item_clsno)=4
  update dbo.table_zong1
  set item_subno=@item_clsno
  where [id]=@id
  
while @@fetch_status=0
 begin
  fetch next from YOUBIAO
  into @id,@item_clsno
  if len(@item_clsno)=3
   begin
   update dbo.table_zong1
   set item_subno=@item_clsno+'0'
   where [id]=@id
   end
  else if len(@item_clsno)=2
   begin 
   update dbo.table_zong1
   set item_subno=@item_clsno+'00'
   where [id]=@id
   end
  else
   begin
   update dbo.table_zong1
   set item_subno=@item_clsno
   where [id]=@id
   end
 end

close YOUBIAO

然后再执行
这个语句。问刚才改好的数据添加编码

DEALLOCATE YOUBIAO
DECLARE YOUBIAO CURSOR FOR
SELECT [id],[item_subno]
FROM dbo.table_zong1

close YOUBIAO
open YOUBIAO
declare 
@id bigint,
@item_subno varchar(510),
@bianliang int,
@item_subno2 varchar(510),
@bianliangvarchar varchar(510)

Fetch next from YOUBIAO
INTO @id,@item_subno

set @bianliang=1
set @item_subno2=@item_subno
set @bianliangvarchar='000'+cast(@bianliang as nvarchar(510))
UPDATE dbo.table_zong1
SET item_subno = @item_subno+@bianliangvarchar
WHERE [id]=@id

 

WHILE @@FETCH_STATUS=0
BEGIN 
    Fetch next from YOUBIAO
    INTO @id,@item_subno
    if @item_subno2=@item_subno
    begin
        set @bianliang=@bianliang+1
 if len(@bianliang)=1
 begin
          set @bianliangvarchar='000'+cast(@bianliang as nvarchar(510))
         UPDATE  dbo.table_zong1
         SET item_subno=@item_subno+@bianliangvarchar
          WHERE [id]=@id
 end
 else if len(@bianliang)=2
 begin
  set @bianliangvarchar='00'+cast(@bianliang as nvarchar(510))
         UPDATE  dbo.table_zong1
         SET item_subno=@item_subno+@bianliangvarchar
          WHERE [id]=@id
 end
 else if len(@bianliang)=3
 begin
  set @bianliangvarchar='0'+cast(@bianliang as nvarchar(510))
         UPDATE  dbo.table_zong1
         SET item_subno=@item_subno+@bianliangvarchar
          WHERE [id]=@id
 end
 else
 begin
  set @bianliangvarchar=cast(@bianliang as nvarchar(510))
         UPDATE  dbo.table_zong1
         SET item_subno=@item_subno+@bianliangvarchar
          WHERE [id]=@id
 end
        
    end
    else
    begin
        set @item_subno2=@item_subno
        set @bianliang=1
        set @bianliangvarchar='000'+cast(@bianliang as nvarchar(510))
         UPDATE  dbo.table_zong1
         SET item_subno=@item_subno+@bianliangvarchar
          WHERE [id]=@id
    end
    
END
CLOSE YOUBIAO

这样编码就算是完成了。

到最后经理说我的编码有问题,原来是8位到13位的编码没有取价格最低的,没办法重新做了一下子,感觉还可以就是要了点时间,因为6万条数据所花的时间太长了。

转载于:https://www.cnblogs.com/itgmhujia/archive/2008/03/06/1093791.html

今天完成任务之SQL中len的使用相关推荐

  1. sql中len函数_在SQL中使用LEN(),ROUND()函数

    sql中len函数 LEN() and ROUND() are scalar functions which return a single value, based in the input val ...

  2. 在SQL中使用PL/SQL函数存在的问题

    -----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...

  3. sql中join类型_SQL Join类型概述和教程

    sql中join类型 This article will provide an overview of the SQL Join and cover all of the SQL join types ...

  4. sql中替换逗号为换行符_使用T-SQL将逗号或其他定界符转换为SQL Server中的表或列表

    sql中替换逗号为换行符 Database developers often need to convert a comma-separated value or other delimited it ...

  5. 报表下拉框多选查询及一般在sql中添加查询条件

    1.sql SELECT * FROM [销量] where 1=1 ${if(len(销售员1) == 2,"","and 销售员 in (" + 销售员1 ...

  6. sql中日期函数的用法

    sql中日期函数的用法   <script src="http://blog.csdn.net/count.aspx?ID=1920773&Type=Rank" ty ...

  7. pandas中计算分位数的方法describe,quantile,以及sql中计算分位数的方法percentile_approx,percent_rank() over()

    1.pandas中计算分位数的方法describe,quantile 准备一张表 def test():df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[ ...

  8. SQL Server Len() 函数

    SQL Server Len() 函数简介: LEN() 函数用于输入字符串的字符数. LEN() 函数返回输入字符串的字符数,不包括尾随空格. 以下是LEN() 函数的语法: LEN(input_s ...

  9. 张同学的 SQL中对材料报价单的数据权限进行操作 (如列转行 行转列的处理) 学习一下....

    SQL中对材料报价单的数据权限进行操作 (如列转行 行转列的处理) --可以直接放到查询分析器执行 --判断测试表TmpTCIQuote是否有存在 不存在则创建 if NOT exists (sele ...

最新文章

  1. 51CTO博客弹出框精彩博文记录【2013年第二季度】
  2. axios  一些用法总结
  3. Table of Contents - Tomcat
  4. Linux_CentOS-服务器搭建 六
  5. P5283-[十二省联考2019]异或粽子【可持久化Trie,堆】
  6. 【论文学习】Densely Connected Convolutional Networks 学习
  7. ASP.NET服务器控件对应的HTML标签
  8. 数组排列组合算法汇总
  9. 解决:Assign object to a variable before exporting as module default
  10. 设置Node.js脚本开机自启动
  11. Invalid arguments问题
  12. Python使用Faker库
  13. 教ai玩游戏_简单解释:DeepMind如何教AI玩视频游戏
  14. 计算机存储1pb等于多少kb,计算机容量PB_TB是什么单位?他们和KB_MB_GB是什关系?...
  15. 期货模拟盘有效果吗?
  16. 无法安装64位office,因为已有32位版本
  17. html如何使mp4成为背景,如何让MP4 video视频背景色变成透明?
  18. 基于Java毕业设计校园外卖系统Web端源码+系统+mysql+lw文档+部署软件
  19. SAP GUI 730 windows 免费下载
  20. 是辞驴找马好还是骑驴找马好哩?

热门文章

  1. WebSocket原理及使用场景(转载)
  2. Mongodb和redis书籍调研
  3. ImportError: cannot import name 'six'解决
  4. 李航书上隐马尔科夫模型案例的实验结果复现
  5. None用法+连接字符串优先使用join +用format而不是%+区别可变对象和不可变对象(list的深拷贝和浅拷贝)
  6. 商品表有哪些字段_面试中有哪些经典的数据库问题?
  7. python如何调用日期函数_当前时间等于另一个时间时如何使用函数:Python
  8. 小猿圈之python的输入和输出
  9. PPT幻灯片转换成word的软件
  10. 线上服务器登记的要点