iT邦幫忙

1

MS SQL SELECT 轉成文字檔並如何限字格式大小

如:一資料表,BARCODE:長度 25 \ PROD:長度:25 ,要轉成 BARCODE:長度 20 \ PROD:長度:20
BARCODE:8888888888 PROD:1234567890 X:空白值
的文字檔,該如何下語法
文字檔例如
8888888888XXXXXXXXXXXXXXX1234567890XXXXXXXXXXXXXXX
要變成
8888888888XXXXXXXXXX1234567890XXXXXXXXXX

語法
SELECT BARCODE AS '條碼',
PROD AS '品號',

題主一開始就說 八扣 跟 剖達 各25碼
回答的都用 20 下去拆

正確的話 先用 25 拆成兩組,再拆各組的 前面 20碼
這樣才是正確的吧
不然就是 第一組 拆前面 20 碼 第二組從 第 26碼 到 45 碼
這樣也行,怎麼看都不會是 20 20 拆
建議拆好之後 這兩組 分開放,會比較好
列印的時候調整版面就好
至於空白格控制,那是版面配置問題,可以不需要再資料庫作業
另外 如果資料庫欄位是社 Vxxx 有設定 固定欄位長度
那麼後面會自動補空白格的,也不需要透過程式操作

2 個回答

10
外獅佬
iT邦大師 1 級 ‧ 2016-01-13 23:34:47

用SUBSTRING...

<pre class="c" name="code">SELECT SUBSTRING([BARCODE],1,20) AS [條碼],SUBSTRING([PROD],1,20) AS [品號].....
allenlwh iT邦研究生 4 級 ‧ 2016-01-14 09:12:08 檢舉

ander6879提到:

declare @barcode varchar(20),@prod varchar(20)
set @barcode='8888888888'
set @prod='1234567890'

SELECT SUBSTRING(@barcode,1,20)+REPLICATE('0',20-LEN(@barcode))+SUBSTRING(@prod,1,20)+REPLICATE('0',20-LEN(@prod))

ander6879 iT邦新手 5 級 ‧ 2016-01-14 18:14:31 檢舉

iT邦幫忙MVPwiselou提到:
用SUBSTRING...

1、用SUBSTRING...,會跳一格空白值,因為要SELECT 多個格式。
2、TO allenwh:
set @barcode='8888888888'set @prod='1234567890'如何更改為欄位值,因db非一筆,是一整個欄位值

allenlwh iT邦研究生 4 級 ‧ 2016-01-15 08:23:14 檢舉

SELECT SUBSTRING(barcode,1,20)+REPLICATE('0',20-LEN(barcode))+SUBSTRING(prod,1,20)+REPLICATE('0',20-LEN(prod)) from table_name

2
allenlwh
iT邦研究生 4 級 ‧ 2016-01-14 09:17:54

參考wiselou前輩的語法,將原字串後面補上'X'

<pre class="c" name="code">
declare @barcode varchar(20),@prod varchar(20)
set @barcode='8888888888'
set @prod='1234567890'

SELECT SUBSTRING(@barcode,1,20)+REPLICATE('X',20-LEN(@barcode))+SUBSTRING(@prod,1,20)+REPLICATE('X',20-LEN(@prod)) 

我要發表回答

立即登入回答