在sql查询中添加短划线

时间:2016-07-01 16:56:22

标签: sql sql-server

 SELECT SUBSTRING(day1,1)+'-'+SUBSTRING(Sum(day1 + day2)) AS day2
    FROM   DaysTable
    WHERE day1 is Not null AND  day2 is Not null

我尝试从同一个表中的两列返回值,并添加两列,并添加两列,这两列将作为一个列返回。另外我想在结果之间添加一条虚线。所以我的结果看起来像20-30

3 个答案:

答案 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) + '-'