我有两个表:Person(person_id,name)和另一个表Contacts(person_id,phone_type,phone_no)。
Person ----------------- person_id name ----------------- P1 Abc P2 Xyz
Contacts -------------------------------- person_id phone_type phone_no -------------------------------- P1 phone1 12345 P1 phone2 23455 P2 phone1 67897 P2 phone3 89786
v_pc person_id name phone1 phone2 phone3 ------------------------------------- P1 Abc 12345 23455 P2 Xyz 67897 89786
例如,contacts表的行被透视以形成视图的列(列的数量将根据'phone_types'列的不同值而变化)。
有什么方法可以透视contacts表,但使用动态pivot-in-sublic,类似
SELECT * FROM ( SELECT person_idd, phone_type, phone_no FROM contacts ) PIVOT (MAX(phone_no) FOR phone_type IN ('phone1','phone2','phone3'))
您可以使用动态SQL(假设您有一个类型为SYS_REFCURSOR的绑定变量v_cur):
declare
v_sql varchar2(32000);
v_phonetypes varchar2(32000);
begin
-- base SQL statement
v_sql := 'SELECT *
FROM (
SELECT
person_id,
phone_type,
phone_no
FROM contacts
) PIVOT (MAX(phone_no) FOR phone_type IN (';
-- comma-separated list of phone types
select
listagg('''' || phone_type || '''', ',') within group (order by phone_type)
into v_phonetypes
from (select distinct phone_type from contacts);
v_sql := v_sql || v_phonetypes || '))';
dbms_output.put_line(v_sql);
-- execute query
open :v_cur for v_sql;
end;
LISTAGG()需要11gr2,但是既然您使用的是PIVOT,我想您还是要使用它。
问题内容: 问题是阿拉伯文字未打印-请谁能解决我的问题? 问题答案: 删除并将编码更改为,这应该使您的字符
问题内容: 我正在尝试使用NSLocalizedString本地化我的应用程序。当我导入XLIFF文件时,大多数工作都像一个超级按钮,但是有些却没有,有些字符串没有本地化。我注意到问题出在NSLocalizedString中,其中包含一些变量,例如: 要么 也许这不是这类东西的正确语法。有人可以向我解释如何迅速做到这一点?非常感谢你。 问题答案: 您可以在中使用format参数,因此您的示例如下所
我正在做一个简单的天气应用程序,我有一个问题,通过AsyncTask读取变量。我是andorid编程的初学者,所以我要求理解。因此,我想将变量“latitude”和“longitude”从place picker中选择到asynctask.execute(“latitude”,“longitude”)中,并刷新屏幕以显示新位置的天气。但我注意到,当我在代码中不是通过变量(例如asynctask.e
问题内容: MS SQL Server 2012 我有一个名为 indexrows* 的表 * 我想将这些结果转换为如下形式。 我尝试了以下查询,但未成功。我得到这个错误 消息156,级别15,状态1,第10行关键字“ for”附近的语法错误。 任何帮助表示赞赏。 问题答案: 您的查询有些错误。 首先,您在PIVOT上缺少聚合函数。您需要一个汇总。 其次,您需要用方括号而不是单引号将。等括起来。
问题内容: 您将如何用PHP编写一个准备好的MySQL语句,每次使用不同数量的参数?这样的查询的示例是: 该条款将有不同数量的s各自运行它时。 我心中有两种可能的解决方案,但想看看是否有更好的方法。 可能的解决方案1 使该语句接受100个变量,并用保证不在表中的伪值填充其余变量;多次调用100多个值。 可能的解决方案2 请勿使用准备好的语句;严格构建并运行查询以检查可能的注入攻击。 问题答案: 我
问题内容: 我有以下代码在控制器中设置变量: 在百里香视图中,我想构造一个带有动作网址的表单: 任何想法如何实现这一目标?我没看过百里香的文档。 问题答案: 正如user482745在注释(现在已删除)中建议的那样,我之前建议的字符串连接 在某些网络环境下会失败。 Thymeleaf用来解析表达式。在内部,使用。它的javadoc状态 为了进行可靠的会话跟踪,应通过此方法运行servlet发出的所