SQL Server:如何通过两个请求获得一个结果?
我是SQL的初学者,我有一个问题 我有两个要求。第一种方法给出了这样的结果: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
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)代码>