我有一个包含两个字母 nvarchar 作为其内容的单元格,我想将其保存到一个简单的 nvarchar 变量中,但是,使用以下代码仅保存了两个字母单元格内容的第一个字母。
DECLARE @RC NVARCHAR = (SELECT Value FROM @scoreTable WHERE Metric = 'RC')
-- this returns 'ND' as expected
SELECT Value FROM @scoreTable WHERE Metric = 'RC'
-- but this returns 'N'! Why?
SELECT @RC
Run Code Online (Sandbox Code Playgroud)
我完全被难住了。如何将两个字母(即单元格的所有内容)保存到变量中@RC?
您需要在 SQL Server 中声明字符类型的长度:
DECLARE @RC NVARCHAR(255) = (SELECT Value FROM @scoreTable WHERE Metric = 'RC')
Run Code Online (Sandbox Code Playgroud)
在 SQL Server(但不是所有其他数据库)中,您应该始终将长度与字符类型一起使用。默认值因上下文而异,因此依赖默认长度可能会令人困惑。
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |