我想要一种改进我的sql代码的好方法,当条件满足时,我必须使用内部联接。我目前正在复制代码:
@SystemMerge bit
if (@SystemMerge=1)
BEGIN
SELECT
.......
FROM myTable
INNER JOIN table ON table.param1=myTable.param1
INNER JOIN systemTable on systemTable.param2=myTable.param2
END
ELSE
BEGIN
SELECT
.......
FROM myTable
INNER JOIN table ON table.param1=myTable.param1
END
我想以这种方式做到这一点:
@SystemMerge bit
BEGIN
SELECT
.......
FROM myTable
INNER JOIN table ON table.param1=myTable.param1
***//the next 4 lines is not working, but this pseudo of what i want:***
if (@SystemMerge=1)
begin
INNER JOIN systemTable on systemTable.param2=myTable.param2
end
编辑: 解决方案(由于@Damien_The_Unbeliever):
LEFT JOIN systemTable ON systemTable.param2=myTable.param2
WHERE
((@SystemMerge=1 AND systemTable.param2 is not null)
OR
(@SystemMerge=0 OR @SystemMerge is null))
这应该(大约)执行相同的操作:
SELECT
.......
FROM myTable
INNER JOIN table ON table.param1=myTable.param1
LEFT JOIN systemTable on systemTable.param2=myTable.param2 and @SystemMerge = 1
WHERE (@SystemMerge = 0 OR systemTable.NonNullableColumn IS NOT NULL)
当然,这还意味着systemTable
必须编写对其中的列的任何其他引用,以期望此类列为NULL
。
SQL Server 2000 使用20多个视图,所有视图都与table1(id和value1以及value2)进行内部连接 表1 或 表2 从表1中,value1或value2应始终为null。现在的问题是,如果value1或value2列为null,则输出显示为null,因为所有视图都是id为value1、value2的内部联接 我想使用条件进行内部联接,如果value1不为null,则使用v
问题内容: 我有一个非常简单的问题:是否可以根据满足的条件对检索到的行进行排序?例如,我有一个人桌,我想检索所有名称以“ I”开头,以“ ster”结尾或包含“ lo”的人,并根据满足这些条件的顺序对其进行排序。首先是与第一个条件匹配的行,然后是与第二个条件匹配的行,依此类推。( 不重复: 如果某行满足第一个条件,则在第二个条件下不应再次显示该行) 编辑: 我使用Visual C#,并且使用MS
问题内容: 我有一个需要处理的大型numpy数组,以便在满足条件的情况下将每个元素更改为1或0(稍后将用作像素遮罩)。数组中大约有800万个元素,而我当前的方法对于简化流程花费的时间太长: 是否有一个numpy函数可以加快速度? 问题答案: 您可以使用以下方法来缩短它:
我需要一些关于以下postgres功能的帮助 我有下表和列: 我最初在中有几个数组,然后运行一个查询(实际上是一组3个查询),选择数组,附加它们,然后将附加的数组插入表中。 我需要循环这个插入查询,直到其中一个数组()达到预定义的大小,比如长度50。 我基本上需要写一些 但是我找不到正确的语法来写这个 我http://www.postgresql.org/docs/8.4/static/plpgs
问题内容: 给定以下示例表架构 客户表 发票表 目的是选择InvoiceID值为10和20(非OR)的所有客户。因此,在此示例中,将返回带有CustID = 1和2的客户。 您将如何构造SELECT语句? 问题答案: 使用: 关键是需要计数等于子句中参数的数量。 的使用是在对帐务编号和发票编号的组合没有唯一约束的情况下- 如果没有重复的机会,则可以从查询中省略DISTINCT:
希望我不会把事情搞复杂。我编写了以下SQL,返回用户他们最近的事务满足一个条件(TRANS_TYPE NOT IN(4,6,21,23)或DESTORIT_OPTION&64<>64)。 我通过使用 前面代码中的sub查询将返回所有用户的所有事务,并按DESC顺序对其进行排序,外部SELECT将通过检查rank 1事务来显示满足条件的用户。 我想要的是像这样的东西 FOREACH user如果用户