簡體   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