字符串的處理,請老大們幫忙搞定

zjllxy 2004-10-26 08:02:40
在SQL資料表中的資料,如表TABLE1的字段1的長度是char(30),
1.那麼在查詢資料時要求得到有30碼的長度的值,不夠的用空格補充注意是在資料的后面補充完
如下:[深厚市三小鎮金元一廠(PP1-Q1) ] ([]不算,只是說明事情用)
說明的一點是如果是漢字的話就要占用2碼的長度,如果是字母和數字的話就只占用一碼的長度
2.那麼對於是Numeric的呢如有字段長度為(9,5)的:如有數據為123.456,剛表示為
[00000012345600],我想就在sql的中查詢出來就是上面所要描述的那樣,不知如何做才能得到!
如表中有結果如下:
發票號碼(12) 項次(4) 送貨單號(18) 客戶(30) 代號(10) 品牌(20) 規格(30) 數量(9,5) 單價(9,2)
I2004100020 01 shcd41016004 東莞大嶺山興興鞋廠 032 COLE-HAAN 10R>30*16*11 184.12 0.39

以上資料括號中為資料的長度,除數量和單價外其它都為char,要求查詢得到資料如上面所述的那樣
請問如何做到那樣的?
...全文
87 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsx 2004-10-26
  • 打赏
  • 举报
回复
不太明白你说的第一个问题。如果字段类型是char(30),值不足30个字符长的,数据库是自动填空补齐的。
zjllxy 2004-10-26
  • 打赏
  • 举报
回复
自已up一下

難道真的沒有人可以解決嗎?
zjllxy 2004-10-26
  • 打赏
  • 举报
回复
謝謝 wuatao411了,第二種情況早就搞定了
關鍵是第一種情況,也就是漢字和字母以及數字的問題!
了缘 2004-10-26
  • 打赏
  • 举报
回复
2,
declare @uu numeric(9,5)
set @uu=123.456
select str(replace(@uu,'.',''))
select len(@uu)
select replace(space(15-len(@uu))+str(replace(@uu,'.','')),space(1),'0')
zjllxy 2004-10-26
  • 打赏
  • 举报
回复
也可以啊,只要能達到要求那樣就可以,

也就是在sql中或是在c#中如何判斷中文字和字母,數字的編碼長度的問題

是漢字就占用兩碼的長度,是字母和數字就占用一碼的長度的問題
Andy__Huang 2004-10-26
  • 打赏
  • 举报
回复
//說明的一點是如果是漢字的話就要占用2碼的長度,如果是字母和數字的話就只占用一碼的長度


你這樣定義就造成不統一了﹐把字段1的長度定義成是nchar(30)吧

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧