我有一个查询返回的字符串,其中包含:
+----------------------+
| returnquerystring |
+----------------------+
| exam1,exam2,exam3 |
+----------------------+
Run Code Online (Sandbox Code Playgroud)
我将此返回的字符串用作数据透视查询中的列名.
select * from (select score,exam from table1) x
pivot ( max(score) for exam in (exam1,exam2,exam3)
Run Code Online (Sandbox Code Playgroud)
这个查询有效
+-------------+-----------+-----------+
| exam1 | exam2 | exam3 |
+-------------+-----------+-----------+
| 10 | 20 | 30 |
+-------------+-----------+-----------+
Run Code Online (Sandbox Code Playgroud)
但是,除了exam1,exam2,exam3的硬编码值之外,我还没有能够使用"in"语句来使用任何东西.例如,我使用了SSMS并创建了一个成功将exam1,exam2,exam3放入@ var1的查询.但是,当用来代替exam1,exam2,exam3时,@ var1会抛出并出错.
declare @var1 varchar(100)
select @var1 = value from table
select * from (select score,exam from table1) x
pivot ( max(score) for exam in (@var1)
Incorrect syntax near '@var1'.
Run Code Online (Sandbox Code Playgroud)
为了验证我做得对,我做了这个并且它有效.
declare @var1 int
select …Run Code Online (Sandbox Code Playgroud) 我有以下代码。
<cfset x = StructNew()>
<cfset y = StructNew()>
<cfset y.name = "1">
<cfset y.id = "2">
<cfset structInsert(x,"item1",y)>
<cfdump var="#x#">
Run Code Online (Sandbox Code Playgroud)
这将输出以下内容,这是我期望的。
struct
item1 struct
name 1
id 2
Run Code Online (Sandbox Code Playgroud)
然后,我添加此代码以插入另一组数据。
<cfset y.name = "3">
<cfset y.id = "4">
<cfset structInsert(x,"item2",y)>
<cfdump var="#x#">
Run Code Online (Sandbox Code Playgroud)
这将输出以下内容。
struct
item1 struct
name 3
id 4
item2 struct
name 3
id 4
Run Code Online (Sandbox Code Playgroud)
为什么item1数据发生变化?
当使用jquery解析从服务器返回的这个json数据时,我可以使用一些语法帮助.我已经尝试了stackoverflow和其他网站的几个例子,并且出于某种原因我不断定义为out out而不是id号.每一个都应该是自己的路线.
{
"ROWCOUNT":7,
"COLUMNS":["ID"],
"DATA":{"id":"211","212","213","221","222","223","232"]}
}
Run Code Online (Sandbox Code Playgroud)