[SQL Server] 文字列の空白埋めと 0 埋めを一行で実現

強引な方法だが、独自関数なしに実現してしまう方法。

文字列を 20 文字抜き出す。20 文字以下の場合は後ろを空白で埋める。
SELECT CONVERT(NCHAR(20), 'SQLServer2014-')
-- 結果(後ろに空白がある) : SQLServer2014-    
文字列を 20 文字抜き出し、かつ、20 文字以下の場合は後ろを '0' で埋める (擬似 RPAD)。
SELECT REPLACE(CONVERT(NCHAR(20), 'SQLServer2014-'), SPACE(1), '0')
-- 結果 : SQLServer2014-000000
文字列を 20 文字抜き出し、かつ、20 文字以下の場合は前を '0' で埋める (擬似 LPAD)。
SELECT REPLACE(REVERSE(CONVERT(NCHAR(20), REVERSE('SQLServer2014-'))), SPACE(1), '0')
-- 結果 :  000000SQLServer2014-
素直に関数を作ったほうがいいか……。

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する