如何在结果末尾硬编码空格?
How to hard code spaces at end of result?
我需要在名为 NPI (nvarchar(20)) 的列末尾添加空格。 NPI 始终是 10 位数字,但报告要求前 10 位数字是 NPI,后跟 10 个空格(我假设是文本文件格式问题)。我尝试了以下方法:
cast([NPI] as nvarchar(20)) + ' '
cast([NPI] as nvarchar(20)) + Space(10)
但是,结果集没有改变。它仅显示 10 位 NPI,不包括空格。
在演员表中添加space
cast([NPI] + ' ' as nchar(20))
你是对的@dfundako,我被我的编辑骗了。
这有效,但我使用的是 MariaDb (MySql),所以它现在可能不相关。
select concat([NPI] , ' ')
这似乎有效。添加“*”以表明存在空格..
print cast([NPI] as nchar(20)) + '*'
这里有一些其他添加填充的俗气方法...
print substring([NPI] + ' ',1,20) + '*'
print [NPI] + space(20 - len([NPI])) + '*'
听起来您实际上是在使用 SQL 服务器而不是 MySQL。 VARCHAR() 用于可变长度字符串,它将 trim 结束空格。改为 char/nchar 以获得所需的输出。它在 SSMS 中看起来不像,因此检查数据长度以确认 nchar(20) = 20 字节 * 2 对于 unicode。
SELECT CAST([NPI] AS NCHAR(20)) AS formattedNPI,
DATALENGTH(CAST([NPI] AS NCHAR(20))) AS confirmation
FROM your_table
我需要在名为 NPI (nvarchar(20)) 的列末尾添加空格。 NPI 始终是 10 位数字,但报告要求前 10 位数字是 NPI,后跟 10 个空格(我假设是文本文件格式问题)。我尝试了以下方法:
cast([NPI] as nvarchar(20)) + ' '
cast([NPI] as nvarchar(20)) + Space(10)
但是,结果集没有改变。它仅显示 10 位 NPI,不包括空格。
在演员表中添加space
cast([NPI] + ' ' as nchar(20))
你是对的@dfundako,我被我的编辑骗了。
这有效,但我使用的是 MariaDb (MySql),所以它现在可能不相关。
select concat([NPI] , ' ')
这似乎有效。添加“*”以表明存在空格..
print cast([NPI] as nchar(20)) + '*'
这里有一些其他添加填充的俗气方法...
print substring([NPI] + ' ',1,20) + '*'
print [NPI] + space(20 - len([NPI])) + '*'
听起来您实际上是在使用 SQL 服务器而不是 MySQL。 VARCHAR() 用于可变长度字符串,它将 trim 结束空格。改为 char/nchar 以获得所需的输出。它在 SSMS 中看起来不像,因此检查数据长度以确认 nchar(20) = 20 字节 * 2 对于 unicode。
SELECT CAST([NPI] AS NCHAR(20)) AS formattedNPI,
DATALENGTH(CAST([NPI] AS NCHAR(20))) AS confirmation
FROM your_table