繁体   English   中英

没有子查询SQL Server的CONCAT列

[英]CONCAT columns without sub-query SQL Server

我一直在寻找是否有更好的方法来执行此查询

日期字段的格式为-06-03-2018

我需要一个看起来像例如Mar-18的列,例如

SELECT
CONCAT(P.[Month] + '-', p.[Year]) AS [Month-Year]
FROM
(
SELECT 
left(datename(MONTH,[Date]),3) AS [Month]
,right(YEAR([Date]),2) AS [Year]
FROM
Table1
)P

这给了我想要的结果,但是我想知道是否有没有子查询就能得到相同的结果。 谢谢

为什么不将日期格式设置为

select format(convert(date, '06-03-2018', 103), 'MMM-yy')

您提供的查询无效,您需要在各列声明之间使用逗号( , )(缺少该声明)。

无论如何,查询可以简化为:

SELECT LEFT(DATENAME(MONTH,[Date]),3) + '-' + RIGHT(YEAR([Date]),2) AS [Month-Year]
FROM Table1;

我没有在这里使用CONCAT ,因为没有必要(因为两个值都将为NULL或具有值)。

您可以直接进行串联

SELECT 
    CAST(LEFT(datename(MONTH, [Date]), 3) AS VARCHAR(20))
    +'-'+
    CAST(RIGHT(YEAR([Date]), 2) AS VARCHAR(20))
    FROM Table1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM