SQL-Serverが全角文字を最後の一文字で断ち割った時は、指定バイト数よりも1バイト欠損するという性質を利用して、判定に使います。
ALTER VIEW [dbo].[v最近商品一覧]
(得意先CD, 出荷年月日, 出荷伝票番号, 行番号,
商品CD, 商品名, 商品名1, 商品名2,
補足, 数量, 単価, 金額
)
AS
SELECT
[得意先CD]
,[出荷年月日]
,[出荷伝票番号]
,[行番号]
,[商品CD]
,[商品名]
,SUBSTRING(CAST(RTRIM(LTRIM([商品名])) AS TEXT),1,20)
,CASE WHEN DATALENGTH(SUBSTRING(CAST(RTRIM(LTRIM([商品名])) AS TEXT),1,20)) < 20
THEN SUBSTRING(CAST(RTRIM(LTRIM([商品名])) AS TEXT),20,21)
ELSE SUBSTRING(CAST(RTRIM(LTRIM([商品名])) AS TEXT),21,20)
END
,[補足]
,[数量]
,[単価]
,[金額]
FROM dbo.e_KAKOSR_DAT AS D1
0 件のコメント:
コメントを投稿