Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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
sqlserver中的SQL查询_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

sqlserver中的SQL查询

sqlserver中的SQL查询,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,有人能解释一下这个查询实际上在做什么吗 SELECT u.business_id, u.name, u.cusine, MAX(u.values1) FROM SOURCE_DATA u UNPIVOT (values1 FOR cusine IN (Sandwiches, Pizza, Bars, Food, Mexican, Thai, Indian)) u WHERE u.values1 = 1 GROUP BY u.

有人能解释一下这个查询实际上在做什么吗

SELECT
    u.business_id,
    u.name,
    u.cusine,
    MAX(u.values1)
FROM 
    SOURCE_DATA u
UNPIVOT 
    (values1 FOR cusine IN (Sandwiches, Pizza, Bars, Food, Mexican, Thai, Indian)) u
WHERE 
    u.values1 = 1
GROUP BY 
    u.business_id, u.name, u.cusine
ORDER BY 
    u.name

根据查询,看起来每个字段、三明治、比萨饼等都包含1或0

Unpivot获取列出的每个字段,并将其转换为两个字段,一个文本字段和一个值1。每个原始字段将成为一行。未列出的字段将被简单地复制下来

group by将从原始数据中返回所有业务id、名称和烹饪的组合,其中字段标记为1


简短的版本是,对于每个企业id和名称,它会得到一个在其原始字段中标记为1的每种菜肴的列表。例如,如果pizza有一个1,它将返回pizza的一行。

您使用的是MySQL还是MS SQL Server?不要给未涉及的产品贴标签。不同的公司生产不同的软件包。即使两者都实现了SQL,它们也以不同的方式扩展SQL,有时使用不同的语法约定,使得它们之间的查询不兼容。请使用正确的标记。我怀疑查询生成了语法错误。