Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
Sql server 我可以在SQL Server中为查询中的筛选表命名吗?_Sql Server - Fatal编程技术网

Sql server 我可以在SQL Server中为查询中的筛选表命名吗?

Sql server 我可以在SQL Server中为查询中的筛选表命名吗?,sql-server,Sql Server,这可能是个愚蠢的问题,但是 我有一个超级简单的查询,可以过滤表的内容 SELECT * FROM [Service Contract Data].[dbo].[filtered_data] WHERE Product LIKE 'Repair RepairMate' OR Product LIKE 'Repair TruckEst' OR Product LIKE 'Repair UltraMate' OR Product LIKE 'Repa

这可能是个愚蠢的问题,但是

我有一个超级简单的查询,可以过滤表的内容

SELECT * 
FROM
    [Service Contract Data].[dbo].[filtered_data] 
WHERE 
    Product LIKE 'Repair RepairMate' OR 
    Product LIKE 'Repair TruckEst' OR 
    Product LIKE 'Repair UltraMate' OR 
    Product LIKE 'Repair UltraMate Basic' OR
    Product LIKE 'Repair UltraMate Marine' OR
    Product LIKE 'Repair UltraMate Motorcycle'

我的问题是-我能给这个数据块一个别名(例如t1)吗?这样我可以在以后的代码中轻松地引用它吗?如果是,怎么做?我知道我可以使用AS来为它从中提取的表命名,但我想命名过滤后的输出。谢谢

如果您使用的是SQL Server 2005及更高版本,则可以使用CTE

;with c1 as (
  SELECT * 
  FROM [Service Contract Data].[dbo].[filtered_data] 
  WHERE Product like 'Repair RepairMate' or Product like 'Repair TruckEst'
    or Product like 'Repair UltraMate' 
    or Product like 'Repair UltraMate Basic' 
    or Product like 'Repair UltraMate Marine' 
    or Product like 'Repair UltraMate Motorcycle'
)
select * from c1
顺便说一句,您使用的是LIKE,但没有通配符,在这种情况下,您可以使用等号或in

如果是这样,您可以将长where子句更改为

  ....
  WHERE Product IN ('Repair RepairMate', 'Repair TruckEst',
    'Repair UltraMate', 'Repair UltraMate Basic', 
    'Repair UltraMate Marine', 'Repair UltraMate Motorcycle')
使用以下命令:

SELECT [columlist] INTO #yourdesiredname
 FROM .....
这将在TempDb中创建一个临时表。因此,它将一直保持到服务器重新启动或您调用

 DROP TABLE #yoursesiredname

你的意思是从上面创建一个视图?