Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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_Sql Server - Fatal编程技术网

SQL Server:如何通过两个请求获得一个结果?

SQL Server:如何通过两个请求获得一个结果?,sql,sql-server,Sql,Sql Server,我是SQL的初学者,我有一个问题 我有两个要求。第一种方法给出了这样的结果: Id Event Name Last Name Address City Phone number ----------------------------------------------------------------- 1 159784623 NAME1 LASTNAME1 ADDRESS1 CITY1 PHONENUMBER1 2 159784623 NAME

我是SQL的初学者,我有一个问题

我有两个要求。第一种方法给出了这样的结果:

Id  Event      Name   Last Name  Address   City   Phone number
-----------------------------------------------------------------
1   159784623  NAME1  LASTNAME1  ADDRESS1  CITY1  PHONENUMBER1
2   159784623  NAME2  LASTNAME2  ADDRESS2  CITY2  PHONENUMBER2
3   159784623  NAME3  LASTNAME3  ADDRESS3  CITY3  PHONENUMBER3
4   159784623  NAME4  LASTNAME4  ADDRESS4  CITY4  PHONENUMBER4
5   159784623  NAME5  LASTNAME5  ADDRESS5  CITY5  PHONENUMBER5
6   159784623  NAME6  LASTNAME6  ADDRESS6  CITY6  PHONENUMBER6
第二个请求为我提供了一个其他参数数组:

Id  Parameter   ParameterType  Event
-----------------------------------
1   ADULT       INTEGER        159784623 
2   CHILDREN    INTEGER        159784623
3   CAR         BOOLEAN        159784623
4   HOTEL       LABEL          159784623
5   RESTAURANT  LABEL          159784623 
我的问题:是否可以在第一个数组中为第二列的每一行创建一列

如果可能的话,你能给我解释一下吗

我必须承认我不知道该去哪里找

我想要的结果是:

Id  Event      Name   Last Name  Address   City   Phone number  Adult  Children  Car  Hotel  Restaurant
-------------------------------------------------------------------------------------------------------
 1  159784623  NAME1  LASTNAME1  ADDRESS1  CITY1  PHONENUMBER1
 2  159784623  NAME2  LASTNAME2  ADDRESS2  CITY2  PHONENUMBER2
 3  159784623  NAME3  LASTNAME3  ADDRESS3  CITY3  PHONENUMBER3
 4  159784623  NAME4  LASTNAME4  ADDRESS4  CITY4  PHONENUMBER4
 5  159784623  NAME5  LASTNAME5  ADDRESS5  CITY5  PHONENUMBER5
 6  159784623  NAME6  LASTNAME6  ADDRESS6  CITY6  PHONENUMBER6  
谢谢

编辑:

实际上,我无法更改此表,因为对于每个事件,第二个数组中的行数都可以更改。因此,有时我必须在第一个数组中添加5列,但有时47列或什么都不添加


我一次只查询一个事件。

如果要添加其他包含空内容或其他静态内容的列,只需将它们添加到
SELECT
子句中,如中所示

选择
身份证件
事件
将(NULL作为INT)转换为成人
从MyTable

清空成人、儿童等栏?用您正在使用的数据库标记您的问题。不,使用简单的查询是不可能的。您需要使用动态SQL来创建和填充表。其语法完全取决于数据库。这里的大多数人希望示例表数据和预期结果为格式化文本,而不是图像。@jarlh是的,列必须为空。好的,所以继续使用两个查询,并将它们的结果与生成JSON所用的任何编程语言混合在一起。在我看来,SQL并不是解决此类问题的合适工具。如果确实需要使用SQL,可以创建一个存储过程,将SQL生成为字符串(也称为动态SQL)并执行它。然后调用此存储过程。仅供参考,如果需要
int
,则不需要
CAST
。如果未定义,
NULL
列将作为
int
返回。如图所示:
从sys.dm\u exec\u description\u first\u result\u set中选择系统类型名称(N'SELECT NULL As N FROM sys.tables;',NULL,NULL)