【发布时间】:2013-06-24 20:06:30
【问题描述】:
这是我现有的运行无错误的代码:
SELECT ItemId,
CAST(DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))) AS DATE) 'Date',
LEFT(CAST(DATEADD(HOUR,-4,CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
SUBSTRING([Date],15,3))) AS TIME),8) 'Time',
[Object],
SourceSite,
DestSite
FROM ( SELECT ItemId,
CONVERT(VARCHAR(18),[Date]) [Date],
[Object],
SourceSite,
DestSite,
UserCode
FROM JnlMediumMove
WHERE CAST(substring(convert(varchar(50), [Date]), 0, 5) + '-' +
substring(convert(varchar(50), [Date]), 5, 2) + '-' +
substring(convert(varchar(50), [Date]), 7, 2) AS DATETIME) =
CONVERT(date, DATEADD(day, -1, getdate()))) A --Converting to date again to remove the time part
WHERE UserCode = 'Automation'
ORDER BY [Date] DESC;
但是我需要对数据的显示进行一些更改。 1) 将列 ItemId 的名称更改为“项目 ID” 2) 将列对象的名称更改为“媒体” 3) 将列 SourcSite 的名称更改为“源站点” 4) 将列 DestSite 的名称更改为“Destination Site” 5)在源站点和目标站点之间添加一列,称为“评论” 6) 该列中的每个条目都必须包含此语句“已成功移动到”
请注意:我每天都在尝试针对这些报告运行批处理作业。因此,列标题和更改都必须在一个查询中完成。任何人都可以对我的代码进行任何更改以获得所需的输出吗?那将不胜感激。我正在使用 SQL Server Management Studio 2008。
【问题讨论】:
-
你不知道哪一部分?您是想通过
alter更改实际的列名还是简单地为这个单一的选择语句的列名设置别名? -
您尝试过使用别名吗?试试这个SQL column alias
-
我在执行此操作时收到此错误:Msg 102, Level 15, State 1, Line 1 “ID”附近的语法不正确。消息 102,级别 15,状态 1,第 25 行“A”附近的语法不正确。
-
我理解别名的概念,只是我从来没有将它应用到这么长的查询中。 @rs
-
@omarK,查询长度与别名无关,只需为要使用不同名称的列添加别名。我认为您懒得自己编辑查询并添加别名,并希望我们完成您的工作:)
标签: sql sql-server-2008 tsql split