2012-09-16 86 views
-1

请帮忙,我一点都不擅长SQL,但我创建了下面的查询。它从房间预订系统提取信息以显示在数字标牌产品上。姓氏,名字开关

目前'姓名'字段输出为lastname, firstname。我真的需要它显示为Firstname Lastname,但仍然在一列之下。

有人可以看看吗?这将不胜感激。

SELECT 
    HOST9006.DESCRIPTION, 
    HOST0110.ROOMNAME, 
    HOST0140.NAME, 
    dateadd(mi, HOST0120.STARTMINS, HOST0120.MTGDATE) AS ASTART, 
    dateadd(mi, HOST0120.ENDMINS, HOST0120.MTGDATE) AS AFINISH, 
    CONVERT(VARCHAR(5), dateadd(mi, HOST0120.STARTMINS, HOST0120.MTGDATE) ,108) AS START, 
    CONVERT(VARCHAR(5), dateadd(mi, HOST0120.ENDMINS, HOST0120.MTGDATE) ,108) AS FINISH, 
    HOST0120.MTGKEY, HOST0120.HIPTYPE, HOST0120.ROOMKEY 
FROM 
    HOST0140 
    INNER JOIN HOST0120 
    ON HOST0120.OWNERKEY=HOST0140.PERSONKEY 
    INNER JOIN HOST9006 
    ON HOST9006.KEYVALUE=HOST0120.MTGSTATE 
    INNER JOIN HOST0110 
    ON HOST0110.ROOMKEY=HOST0120.ROOMKEY 
WHERE 
    CANCELSTATE='0' 
AND MTGDATE >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) 
AND MTGDATE < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1) 
AND MTGSTATE <> '11' 
ORDER BY START 

感谢

+1

给你的问题一个**有意义的标题 – abatishchev

+0

你正在使用哪种RDBMS? – fancyPants

回答

1

这应该让你开始为SQL服务器(你没有指定你使用的是什么RDBMS):

select substring(col1, charindex(',', replace(col1, ' ', '')) + 1, len(col1)) 
    + ' ' 
    + left(col1, charindex(',', col1) -1) as First_Last 
from names 

SQL Fiddle with Demo

0

这应该工作mySQL

select concat(right(Name, length(Name) - instr(Name, ',') - 1), ' ', left(Name, instr(Name,',')-1)) from mytable