2016年10月28日金曜日

MS-SQL 漢字を含む文字列の分割

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 件のコメント:

コメントを投稿