討論區快速選單
知識庫快速選單
掌握Salesforce雲端管理秘訣 軟體開發過程中有哪些資安漏洞? 討論區最近新進100則主題
[ 回上頁 ] [ 討論區發言規則 ]
幫幫忙吧~如何寫出流水號
更改我的閱讀文章字型大小
作者 : fang1020(fang)
[ 貼文 7 | 人氣 1453 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/7/31 上午 10:15:52
嗯~我第一次使用SQL SERVER 不知道如何寫出一個日期+流水號 (例如 20030731001)

INSERT INTO TEMP ([order no])
SELECT CONVERT(CHAR(11), GETDATE(), 112)
     + CAST(CAST(SUBSTRING(MAX([order no]), 9, 3) AS INT(3)) + 1 AS CHAR(3))
FROM [expenses apply]

分開那二個句子都有值傳回,但是二個字串加在一起之後就會出現錯誤訊息:字串或二元數值會被截斷我不知道問題出在哪???可以請大家幫忙教一下嗎??謝謝............
作者 : gwuu(Gordon) 貼文超過500則
[ 貼文 668 | 人氣 7592 | 評價 770 | 評價/貼文 1.15 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/7/31 上午 10:23:46
參考一下吧(你把11,1,111換成你要的數字)
select CONVERT(CHAR(8),GETDATE(),112) + right('000' +rtrim(convert(char(3),11)) ,3)
select CONVERT(CHAR(8),GETDATE(),112) + right('000' +rtrim(convert(char(3),1)) ,3)
select CONVERT(CHAR(8),GETDATE(),112) + right('000' +rtrim(convert(char(3),111)) ,3)
作者 : fang1020(fang)
[ 貼文 7 | 人氣 1453 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/7/31 上午 11:45:32
謝啦~
試出來啦!!!喔~yes
可是我還是不能展示的粉漂亮因為我要能夠自動增加流水號
so.............有什麼方式可以格式化嗎??
例如:20030731'002'而不是20030731"2"
作者 : gwuu(Gordon) 貼文超過500則
[ 貼文 668 | 人氣 7592 | 評價 770 | 評價/貼文 1.15 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/7/31 下午 01:17:32
select CONVERT(CHAR(8),GETDATE(),112) + right('000' +rtrim(convert(char(3),11)) ,3)

這不是已經格式化好了嗎? 就是因為要格式話所以才加'000'
不知道你的問題在哪?
作者 : fang1020(fang)
[ 貼文 7 | 人氣 1453 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/1 上午 11:55:04
謝了!!!
我終於看懂你的意思了~
真是不好意思哪.......
作者 : moon6262(moon)
[ 貼文 8 | 人氣 355 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/18 下午 03:15:03

我寫了這二行~可是執行出來都是011 011...怎樣才能001 002 003 .....^^||

UPDATE TABLE2
SET 項次 = right('000' +rtrim(convert(char(3),11)) ,3)
作者 : gwuu(Gordon) 貼文超過500則
[ 貼文 668 | 人氣 7592 | 評價 770 | 評價/貼文 1.15 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/19 上午 09:34:37
right('000' +rtrim(convert(char(3),11)) ,3)

11必需用變數取代
你下常數當然都是011
作者 : moon6262(moon)
[ 貼文 8 | 人氣 355 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/19 上午 11:14:17
謝謝Gordon~可以再請教你嗎~
如果我把11設成變數~怎麼寫才能出現001 002 003...
我是初學者 ^^||

declare @n int
UPDATE TABLE2
SET 項次 = right('000' +rtrim(convert(char(4),@n)),4)
作者 : parsley3000(qakira)
[ 貼文 11 | 人氣 652 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/19 上午 11:44:13
恩恩,設了變數,不能用迴圈寫法的話,要怎麼讓它遞增跟停止呢?真是頭痛阿~~
請幫幫忙...*_*"
作者 : gwuu(Gordon) 貼文超過500則
[ 貼文 668 | 人氣 7592 | 評價 770 | 評價/貼文 1.15 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/19 下午 12:17:08
declare @n as int

select @n = 0

while (@n < 10)
  begin
  select right('0000' +rtrim(convert(char(4),@n)),4)
end

你的update語法很奇怪 我看不太懂你為什麼會這樣寫....
作者 : parsley3000(qakira)
[ 貼文 11 | 人氣 652 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/19 下午 01:29:59
>declare @n as int
>
>select @n = 0
>
>while (@n < 10)
> begin
> select right(''0000'' +rtrim(convert(char(4),@n)),4)
>end
>
>你的update語法很奇怪 我看不太懂你為什麼會這樣寫....

請問可以不用迴圈,就可以直接讓多筆紀錄的某一欄位值直接自動遞增編號嗎?


作者 : moon6262(moon)
[ 貼文 8 | 人氣 355 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/19 下午 01:37:48
因為原本"項次"那個欄位是NULL,我想用SQL語法讓它自己產生編號,
如 : 001 002 003 .... 所以才用UPDATE的方式....有想過用insert,不過就變成新增一筆了...
(可以不要用迴圈來做嗎?... 不知道有沒有辨法....) ^^
作者 : moon6262(moon)
[ 貼文 8 | 人氣 355 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/19 下午 02:08:48

 select right(''0000'' +rtrim(convert(char(4),@n)),4)
^^^^^^---->>這是什麼意思,為什麼要用select??
作者 : gwuu(Gordon) 貼文超過500則
[ 貼文 668 | 人氣 7592 | 評價 770 | 評價/貼文 1.15 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/20 下午 06:16:32
請問可以不用迴圈,就可以直接讓多筆紀錄的某一欄位值直接自動遞增編號嗎?
應該不行
沒有資料來源(變數)及迴圈 怎麼會有自動遞增的編號????
應該要用Cursor及一個給編號的table這樣產生的自動編號才不會從複
作者 : parsley3000(qakira)
[ 貼文 11 | 人氣 652 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/8/21 下午 01:41:11
我們頭子公佈答案了.=.=利用計算別的欄位資料列數量來作....
非常謝謝你之前的回答噢~~感恩~^^

select '項次'=(select count(*) from TBK2 b where a.子階料品編號>=b.子階料品編號)
from TBK2 a

作者 : carlos06tw(Carlos)
[ 貼文 42 | 人氣 2054 | 評價 20 | 評價/貼文 0.48 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/10/24 上午 11:05:34

>謝啦~
>試出來啦!!!喔~yes
>可是我還是不能展示的粉漂亮因為我要能夠自動增加流水號
>so.............有什麼方式可以格式化嗎??
>例如:20030731''002''而不是20030731'2'
'20030731'+rigth('000'+cast(@num as char(3)),3)
作者 : carlos06tw(Carlos)
[ 貼文 42 | 人氣 2054 | 評價 20 | 評價/貼文 0.48 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/10/24 上午 11:07:14

>謝啦~
>試出來啦!!!喔~yes
>可是我還是不能展示的粉漂亮因為我要能夠自動增加流水號
>so.............有什麼方式可以格式化嗎??
>例如:20030731''002''而不是20030731'2'
'20030731'+right('000'+ltrim(cast(@num as char(3))),3)
作者 : bobkuo(老骨頭)
[ 貼文 135 | 人氣 756 | 評價 1270 | 評價/貼文 9.41 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2003/11/18 上午 10:12:50
select '項次'=(select count(*) from TBK2 b where a.子階料品編號>=b.子階料品編號)
from TBK2 a
會產生一個問題,就是如果[子階料品編號]相同,就不是流水號了,
也就是說,這個方法只適用於沒有重複值的狀況,

用下面的語法,就比較通用,效能也比較高,
尤其是有複雜的 Where 或是資料項目多的時候,特別明顯。

SELECT *,IDENTITY( int , 1 , 1 ) as ID
Into #TTT
FROM T1

Select * From #TTT
Order By ID
 板主 : 徵求中
 > SQL Server 7/2000 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 7/2000 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 7/2000
1 小朱 1540 
2 小台 1520 
3 Gordon 600 
4 ㄉ一ˊㄎㄜˋ 580 
5 路人 490 
6 max 470 
7 william 410 
8 Aries 250 
9 阿利 180 
10 羅啟章 160 
SQL Server 7/2000
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.1088867