- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一位同事喜欢使用她所说的“逗号连接”。我最近在现场环境中第一次使用了交叉应用,并注意到它给出了与她的“逗号连接”相同的结果,并且想知道两者是否有什么不同,或者她的方式是否只是速记。下面我有代码创建两个临时表,然后进行交叉应用,将第一个临时表中的所有内容附加到第二个临时表中的所有内容。它还通过她的“逗号连接”来实现这一点。
Select
'a' as a,'b' as b,'c' as c,'d' as d
Into #letter
Create table #name
( name varchar(10))
Insert Into #Name
Values('David'),('Kai'),('Brad'),('Todd'),('Vivian')
Select *
From #Name
Cross apply(Select * from #letter) as A
Select *
From #name
,#letter
那么这些是相同的只是不同的编写方式还是在某些情况下会做不同的事情?哦,我们使用 SQL 2012。
最佳答案
正如 SqlZim 指出的那样,这些“逗号连接”是一种称为隐式连接的旧式表连接方式。
这种连接的连接条件位于 where 子句中 - 例如 -
SELECT *
FROM a, b
WHERE a.Id = b.aId
与
相同SELECT *
FROM a
INNER JOIN b ON a.Id = b.aId
由于我希望是显而易见的原因,隐式(或旧式)联接不受欢迎 - 正如您可能很容易想象的那样,当您需要联接两个以上的表时,与显式联接相比,它变得非常难以阅读。
Cross apply
然而,它根本不是连接。交叉应用的意思是您对左侧的每一行执行交叉应用运算符右侧的任何内容。
对于您发布的隐式连接语句,更准确的显式连接是
SELECT *
FROM #name
CROSS JOIN #letter
另一种选择是使用内部联接,其联接条件始终为 true
- 如下所示:
SELECT *
FROM #name
INNER JOIN #letter ON 1=1
关于sql-server - 交叉应用与 "comma Join",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42797613/
编辑:在我的示例中,=> 表示“评估为”,而 -> 表示“扩展到 macroexpand-1” . 我正在努力研究 Common Lisp 中的嵌套反引号,我想我已经非常接近理解它了,多亏了其他几个
我正在创建一个必须按以下方式格式化的请求字符串: http://staging.myproject.com?tags=tag1,tag2,tag3 在用户编写标签的窗体上有一个 EditText 对话
我的文字如下: "text","1","more, more text","3" 任何人都可以告诉我我必须使用什么正则表达式分隔符才能获得以下内容: text 1 more, more text 3
我有一个像下面这样的字符串 - value1, value2, value3, value4, "value5, 1234", value6, value7, "value8", value9, "v
我有一个用户表,其中包含一列(例如兴趣),以逗号分隔的兴趣 ID 作为值。例如 user interests A 12,13,15 B 10,11,12,15 C 9,13
我有一个用户表,其中包含一列(比如兴趣),其中以逗号分隔的兴趣 ID 作为值。例如 user interests A 12,13,15 B 10,11,12,15 C 9,1
因此,我有一个值为“app、beta、theta”的单元格,我想查看填充有上述单元格的列是否包含我的单元格值。例如:AA 列有这些单元格:“app”; “theta,应用程序”; “theta,app
以这个小示例代码为例: struct Test{ operator int() const{ return 0; } }; Test test(){ retur
我需要一个代码来计算 Richtextbox 行中有多少个逗号。如果有 4 个或更多逗号,则执行某些操作,否则删除行。 最佳答案 这是强制性的 LINQ 答案: Dim cnt As Integer
我正在查看字符串是否有逗号。 假设我有两个用户名“David, Boon”和“David Blind”。 我需要根据用户名中是否存在“,”的条件编写一个 if 循环。有没有办法检查? .Net 中的包
我正在使用FCSA Number处理 AngularJS 中的小数输入。 如果我使用 maxDecimals 选项,它几乎可以按预期工作。对于两位小数,“100.333”等输入将转换为“100.33”
我现在如何在 Elixir 中获得低于字符串的结果。 ['x1', 'x2'] 我尝试使用 enum.join 但没有获得所需的数据 到 'x1,x2' 最佳答案 如果我理解正确,你应该使用Enum.
我现在如何在 Elixir 中获得低于字符串的结果。 ['x1', 'x2'] 我尝试使用 enum.join 但没有获得所需的数据 到 'x1,x2' 最佳答案 如果我理解正确,你应该使用Enum.
我有用逗号分隔的字符串。 首先,我想检查是否包含逗号的字符串。 在我的应用程序中,字符串如下所示: NSString *str=@"1,2,3"; 如何检查它是否包含逗号? 最佳答案 我使用以下
我正在尝试解决逗号代码项目以自动执行无聊的事情。我在第一个 if 语句方面遇到了麻烦。我正在尝试输出字符串:“苹果、香蕉、 bean 腐和猫”。由于某种原因,它跳过了列表中的第一项。 编辑:本教程没有
我正在尝试创建一个 onkeydown() 函数,强制文本输入字段中逗号 (",") 后的所有字母大写。 我知道我可以使用这个函数将所有字母变为大写: function makeUppercase(f
我有以下代码。 $(document).ready(function(){ $('input[type="checkbox"]').click(function(){ elem =
使用 JavaScript,什么是将点替换为逗号的正确方法(对于欧盟货币),例如: 2000.65 将是 2000,65 而不是 2,000.65 39.20 将是 39,20 我不确定 cost.r
打印中的,加了一个空格 >>> print "a","b" a b 如果我需要一个\t,我放 >>> print "a","\t","b" a b 如何将 , 的输出更改为 \t? 最佳答
我需要检查某些文本是否仅包含小写字母 a-z 和逗号 (",")。 在 Python 中执行此操作的最佳方法是什么? 最佳答案 import re def matches(s): return
我是一名优秀的程序员,十分优秀!