【发布时间】:2020-02-19 02:53:34
【问题描述】:
我有一个表,我想将 4 列连接在一起;其中 2 个是整数,1 个文本和 1 个日期。
我通过将整数转换为 varchar 并格式化日期将它们连接在一起。但我有一个例子,最后一项没有显示
SELECT
CAST(CONTRACT_ID VARCHAR(15)) + '-' +
CAST(CONTRACT_TYPE AS VARCHAR(15)) + '-' +
GENDER + '-' + FORMAT(DOB, 'yyyy') AS UNIQUE_ID
有 4 行应该有相同的输出,然后它们不同。
- 12345678-70-M -1948
- 12345678-70-M
- 12345678-70-M
- 12345678-70-M
但是当作为结果运行到文本时,会返回正确的结果
- 12345678-70-M -1948
- 12345678-70-M -1948
- 12345678-70-M -1948
- 12345678-70-M -1948
这不是网格内的视觉错误,因为如果我对其进行过滤,它只会返回 1 行。
我确实注意到,如果我将性别设置为 varchar(1),结果确实有效。
在导致问题的性别字段末尾是否有隐藏字符。
它似乎在 99% 的时间都运行良好。
【问题讨论】:
-
请给出表格的定义和样本数据。
标签: sql sql-server concatenation