Pages

2013/11/21

[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-
素直に関数を作ったほうがいいか……。
Related Posts Plugin for WordPress, Blogger...