我已经编写了这个查询(sql 2008),并且由于某种原因,一旦上传到平面文件,我就无法让它左对齐。它是一个10个字符长度的条目,并且应该从记事本上当前起始位置开始5个空格。
REPLICATE(' ',10-LEN(
ISNULL(
CASE WHEN LTRIM(REPLACE(A.DIAGN1, '.','')) =''
THEN NULL
ELSE LTRIM(REPLACE(A.DIAGN1, '.',''))
END
, 'V689')
))+ISNULL(
CASE WHEN LTRIM(REPLACE(A.DIAGN1, '.','')) =''
THEN NULL
ELSE LTRIM(REPLACE(A.DIAGN1, '.',''))
END
, 'V689') AS PRIME_DIAGN_CODE, --ISNULL(LEFT(' '+REPLACE(A.DIAGN1, '.',''), 10), LEFT(''+'V689',10)) -- Primary Diagnosis Code (10)
提前感谢你, 汗
答案 0 :(得分:0)
这是一个10个字符长度的条目,但我不明白你的意思"应该从它当前的起始位置开始5个空格"如果你想让它左对齐...你想要它左对齐但缩进5个空格?
下面是获取10个字符串的脚本...我使用了下划线,因此很容易看到空格的位置......显然你需要用脚本中的空格替换下划线。
希望这会有所帮助 - 如果我误解了,请告诉我。顺便说一句,你需要@Username提及我们,否则我们不知道你提供了更多的信息......幸运的是我检查了。
declare @DIAGN1 varchar(10) = '1234'
select
Right(REPLICATE('_',10) + ISNULL(LTRIM(REPLACE(@DIAGN1, '.','')),'V689'),10) as RightJust_PRIME_DIAGN_CODE,
left(ISNULL(LTRIM(REPLACE(@DIAGN1, '.','')),'V689') + REPLICATE('_',10),10) as LeftJust_PRIME_DIAGN_CODE