日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

今天完成任务之SQL中len的使用

發布時間:2023/12/19 数据库 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 今天完成任务之SQL中len的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于昨天搬家,經理感覺有點對不住了,呵呵,其實 是我自己對不住了,
上午就很辛苦的將算法寫好,在自己的思路和流程下一個一個數據庫都在我的手下形成了編碼,其實上午根本沒有忙什么都在想怎么搞了,下午才真正的將它給弄好,下面講解下我自己聽哈子。
首先。我們將原來的表請出來一個并且在里面添加一個字段,然后進行自動的編寫代號。好下面來寫具體的內容。
首先在我的思路里面有要在不同的情況下執行不同的方法,所以我真正的用到了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的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。