我一直在四处寻找,但还没有找到如何执行此操作的方法(尽管在分析其性能方面发现了很多内容!!)
我想执行一次选择,该操作返回几列数据,然后返回另一个表中的相关行的嵌套表(实际上是同一张表本身连接在一起,但我认为这是无关紧要的)。
所以数据是这样的:
id name registered
1 Dan N
2 Bill N
3 Bob N
4 Dan N
5 Bill Y
6 Dan Y
这个想法是执行选择,以查找所有可能与注册帐户相关的未注册人员。
所以结果看起来像
registered.id name notreg.id name
5 Bill 2 Bill
6 Dan 1 Dan
4 Dan
我可以使用SQL来处理所有选择条件,并且有一个查询返回可以找到此结果的普通内部联接,但想知道是否有可能获得像这样的结果集,因此左侧没有重复的值边??
您最好在客户端中抑制它的重复(例如,在Jasper Reports中取消选中Print Repeated Value
或在XML
set中isPrintRepeatedValues="false"
)
但是在任何支持WITH
和的东西上ROW_NUMBER()
(例如Oracle,SQL Server 2005+)。
WITH ns
AS (SELECT Row_number() OVER (PARTITION BY name ORDER BY id) rn,
id,
name,
registered
FROM t
WHERE registered = 'N')
SELECT t.id,
t.name,
ns.id,
ns.name
FROM ns
LEFT JOIN t
ON ns.name = t.name
AND t.registered = 'Y'
AND ns.rn = 1
WHERE ns.name IN (SELECT name
FROM t
WHERE registered = 'Y')
ORDER BY ns.name
参见工作示例
如果您没有WITH和ROW_NUIMBER,则可以执行此操作
SELECT t.id,
t.name,
ns.id,
ns.name
FROM t ns
LEFT JOIN (SELECT MIN(id) id,
name
FROM t
WHERE registered = 'N'
GROUP BY name) MINNS
ON ns.id = MINNS.id
LEFT JOIN t
ON ns.name = t.name
AND t.registered = 'Y'
AND MINNS.id IS NOT NULL
WHERE ns.registered = 'N'
AND ns.name IN (SELECT name
FROM t
WHERE registered = 'Y')
ORDER BY ns.name,
ns.id
参见工作示例
问题内容: 有什么方法可以隐藏或加密JavaScript代码以防止人们查看,复制和/或修改专有程序? 问题答案: 您可以对其进行混淆,但是无法完全保护它。
我对Java和log4j2很陌生,所以很抱歉提出这个可能很奇怪的问题。我的问题如下。我编写了一个使用log4j2进行日志记录的应用程序。程序分析数据并在给定字符串无法按需要解析的情况下写入警告。有时程序会收到许多意外的字符串,因此它会一直记录相同的错误消息。所以,问题是,如何避免重复记录相同的错误消息。例如,为了在日志文件中看到2000次相同的错误消息,我希望在日志文件中有一个提示,这个错误消息被
我需要隐藏或删除后退按钮或后退图标从AppBar是可能的吗? 如果可能,那么如何? 我设置了,但它仍然存在,没有任何变化
我正在创建一个快速响应的网站。我使用类似这样的方法来隐藏一些用于移动显示的元素: 现在我需要从高度方面检查一些元素。我尝试了这个:,但我不知道为什么它不起作用。还需要注意的是,我需要一个,我想要这个条件: 如何使用CSS实现上述条件?
问题内容: 从文档中的示例来看,似乎不应该有任何输出 但是,当我在python shell中尝试时,列表会被打印出来。我想知道这是否是默认行为,以及如何抑制的输出。 问题答案: 这是按清洁度递减的顺序 抑制 输出的方法。他们假设您使用的是Python 3。 您可以重定向到特殊目标。 import subprocess subprocess.run([‘ls’, ‘-l’], stdout=subp
我想在用户在EditText上键入时隐藏光标。我怎么做? 这个光标。