Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 是否将sql查询结果的前4个字符分配到另一列?_Mysql_Sql - Fatal编程技术网

Mysql 是否将sql查询结果的前4个字符分配到另一列?

Mysql 是否将sql查询结果的前4个字符分配到另一列?,mysql,sql,Mysql,Sql,我正在使用下面的SQL代码获取计算机列表。我需要以某种方式获取这些结果,并用每个记录的前4个字符填充它旁边的另一列。例如: Computer Name New Column ABCD1000P ABCD 这可能吗 SELECT SYS.Netbios_Name0 FROM dbo.v_R_System AS SYS INNER JOIN dbo.v_GS_PROCESSOR AS Processor ON SYS.ResourceID = Processor.Re

我正在使用下面的SQL代码获取计算机列表。我需要以某种方式获取这些结果,并用每个记录的前4个字符填充它旁边的另一列。例如:

Computer Name  New Column

ABCD1000P      ABCD
这可能吗

SELECT   SYS.Netbios_Name0
FROM dbo.v_R_System AS SYS 
     INNER JOIN dbo.v_GS_PROCESSOR AS Processor ON SYS.ResourceID = Processor.ResourceID 
     INNER JOIN dbo.v_GS_COMPUTER_SYSTEM ON SYS.ResourceID = dbo.v_GS_COMPUTER_SYSTEM.ResourceID
WHERE (SYS.Obsolete0 = 0) AND (SYS.Client0 = 1)and SYS.Netbios_Name0 not like '%-%'
使用LEFT函数

使用LEFT函数

使用派生表:

select dt.Computer.Name, LEFT(ComputerName,4) as NewColumn
(
SELECT   SYS.Netbios_Name0 as ComputerName   
FROM         dbo.v_R_System AS SYS INNER JOIN
                  dbo.v_GS_PROCESSOR AS Processor ON SYS.ResourceID = Processor.ResourceID INNER JOIN
                  dbo.v_GS_COMPUTER_SYSTEM ON SYS.ResourceID = dbo.v_GS_COMPUTER_SYSTEM.ResourceID
WHERE     (SYS.Obsolete0 = 0) AND (SYS.Client0 = 1)and SYS.Netbios_Name0 not like '%-%'
) dt
编辑:左,而不是右。谢谢你,马特

使用派生表:

select dt.Computer.Name, LEFT(ComputerName,4) as NewColumn
(
SELECT   SYS.Netbios_Name0 as ComputerName   
FROM         dbo.v_R_System AS SYS INNER JOIN
                  dbo.v_GS_PROCESSOR AS Processor ON SYS.ResourceID = Processor.ResourceID INNER JOIN
                  dbo.v_GS_COMPUTER_SYSTEM ON SYS.ResourceID = dbo.v_GS_COMPUTER_SYSTEM.ResourceID
WHERE     (SYS.Obsolete0 = 0) AND (SYS.Client0 = 1)and SYS.Netbios_Name0 not like '%-%'
) dt

编辑:左,而不是右。谢谢你,马特

查询您发布的输出ABCD1000P吗?是的,我现在只需要进入一个新列您的意思是要选择另一列,因此计算机名和新列都应该返回?查询您发布的输出ABCD1000P吗?是的,我现在只需要进入一个新列您的意思是要选择另一列,所以计算机名和新列都应该返回吗?我当时的想法也是SUBSTR!我立刻想到的也是SUBSTR!