SELECT SUBSTRING(day1,1)+'-'+SUBSTRING(Sum(day1 + day2)) AS day2
FROM DaysTable
WHERE day1 is Not null AND day2 is Not null
我尝试从同一个表中的两列返回值,并添加两列,并添加两列,这两列将作为一个列返回。另外我想在结果之间添加一条虚线。所以我的结果看起来像20-30
答案 0 :(得分:2)
如果字段是整数:
SELECT CAST(day1 AS VARCHAR(25))+'-'+CAST(day1+day2 AS VARCHAR(25))
FROM DaysTable
WHERE day1 is Not null AND day2 is Not null
如果它们是字符串,则可以省略第一个CAST()
,并且必须在CAST()
周围添加day1
以提示整数添加:
SELECT day1+'-'+CAST(CAST(day1 AS INT)+day2 AS VARCHAR(25))
FROM DaysTable
WHERE day1 is Not null AND day2 is Not null
数字不应存储为字符串,除非在不对它们进行计算的情况下和/或您希望保留前导零,例如SSN /电话号码/ CPT代码。
Fyi:SUBSTRING()
返回一个字符串的一部分(如果你愿意,则返回'sub'set):
SELECT SUBSTRING('dog',1,2)
-- Returns 'do', from the first character, take 2 characters.
在同一行上添加值不需要 SUM()
,而是在您想要聚合多行的值时使用
+
。对于添加或连接,您只需要Cells()
,它的连接或添加是由所显示的数据类型决定的。
答案 1 :(得分:0)
试试这个
SELECT SUBSTRING(CAST(day1 AS NVARCHAR(50)),1,2)+'-'+SUBSTRING(CAST(Sum(day1 + day2)AS NVARCHAR(50)),1,2) AS day2
答案 2 :(得分:0)
当我尝试连接字符串和整数时,我遇到了这种问题。
SUBSTRING期待某种类型的字符串,并且您不会给它一个整数感到高兴。
因此,在对它们执行字符串操作之前,将整数转换为字符串。
例如:
SELECT SUBSTRING(CAST(day1 as varchar(2)),1) + '-'