我需要在我称为NPI(nvarchar(20))的列的末尾添加空格。 NPI总是10位数,但报告要求前10位数字是NPI后跟10个空格(我假设文本文件格式化问题)。我尝试过以下方法:
cast([NPI] as nvarchar(20)) + ' '
cast([NPI] as nvarchar(20)) + Space(10)
但是,结果集不会更改。它只显示10位数的NPI,并且不包含空格。
答案 0 :(得分:2)
听起来你实际上是在使用SQL Server而不是MySQL。 VARCHAR()用于可变长度字符串,它将修剪结束空格。转换为char / nchar以获得所需的输出。它在SSMS中看起来不像,所以检查数据长度以确认unicode的nchar(20)= 20字节* 2。
SELECT CAST([NPI] AS NCHAR(20)) AS formattedNPI,
DATALENGTH(CAST([NPI] AS NCHAR(20))) AS confirmation
FROM your_table
答案 1 :(得分:0)
在演员阵容中添加空格
cast([NPI] + ' ' as nchar(20))
你是对的@dfundako,我被编辑愚弄了。
这有效,但我使用的是MariaDb(MySql),所以它现在可能不相关了。
select concat([NPI] , ' ')
答案 2 :(得分:0)
这似乎有效。添加'*'表示存在空格..
print cast([NPI] as nchar(20)) + '*'
以下是其他几种添加填充的简洁方法......
print substring([NPI] + ' ',1,20) + '*'
print [NPI] + space(20 - len([NPI])) + '*'