我相信答案是否定的.我正在寻找一个反例来证明输出顺序不能保证,没有order by子句.
考虑:
create table #order (orderId int primary key clustered
, customerId int not null -- references customer(customerId)
, orderDateTIme datetime not null)
insert into #order values (1, 100, '2009-01-01')
insert into #order values (2, 101, '2009-01-02')
insert into #order values (3, 102, '2009-01-03')
insert into #order values (4, 103, '2009-01-04')
insert into #order values (5, 100, '2009-01-05')
insert into #order values (6, 101, '2009-01-06')
insert into #order values (7, 101, '2009-01-07')
insert into #order …Run Code Online (Sandbox Code Playgroud) 考虑以下函数来实现计算阶乘:[1]
(define fac-tail
(lambda (n)
(define fac-tail-helper
(lambda (n ac)
(if (= 0 n)
ac
(fac-tail-helper (- n 1) (* n ac)))))
(fac-tail-helper n 1)))
Run Code Online (Sandbox Code Playgroud)
我试图用let内部定义重写:
(define fac-tail-2
(lambda (n)
(let ((fac-tail-helper-2
(lambda (n ac)
(if (= 0 n)
ac
(fac-tail-helper-2 (- n 1) (* n ac))))))
(fac-tail-helper-2 n 1))))
Run Code Online (Sandbox Code Playgroud)
define时间没有错误,但执行结果为:
#;> (fac-tail-2 4)
Error: undefined variable 'fac-tail-helper-2'.
{warning: printing of stack trace not supported}
Run Code Online (Sandbox Code Playgroud)
如何使let版本有效?
方案版本是SISC v 1.16.6
[1]基于factorialSICP第1.2.1节的迭代版本http://mitpress.mit.edu/sicp/full-text/book/book-ZH-11.html#%_sec_1.2.1
我有逗号分隔的ID,我想在NOT IN子句中使用..我正在使用oracle 11g.
select * from table where ID NOT IN (1,2,3,4,...,1001,1002,...)
Run Code Online (Sandbox Code Playgroud)
结果是
ORA-01795: maximum number of expressions in a list is 1000
Run Code Online (Sandbox Code Playgroud)
我不想使用临时表.我正在考虑这样做
select * from table1 where ID NOT IN (1,2,3,4,…,1000) AND
ID NOT IN (1001,1002,…,2000)
Run Code Online (Sandbox Code Playgroud)
这个问题还有其他更好的解决方法吗?
如果我从命令行传入一个路径,"〜"会扩展到我的主目录:
(defn -main
"I don't do a whole lot ... yet."
[& args]
(doseq [arg args]
(println arg)))
britannia:uberjar srseverance$ java -jar args-0.1.0-SNAPSHOT-standalone.jar ~/158.clj
/Volumes/Macintosh HD/Users/srseverance/158.clj
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用包含〜的路径文件,我找不到该文件.
user> (with-open [r (clojure.java.io/reader "~/158.clj")]
(doall (line-seq r)))
FileNotFoundException ~/158.clj (No such file or directory) java.io.FileInputStream.open0 (FileInputStream.java:-2)
Run Code Online (Sandbox Code Playgroud)
如何使用"〜/ 158.clj"之类的字符串并获取clojure.java.io/reader可以使用的字符串,例如"/ Volumes/Macintosh HD/Users/srseverance/158.clj"?
我正在尝试在我的Java程序中读取stdin.我期待一系列数字后跟换行符,例如:
6
9
1
Run Code Online (Sandbox Code Playgroud)
通过eclipse内置控制台提供输入时,一切顺利.但是当使用Windows命令行时,程序会打印:
Received '6'.
Received 'null'.
Invalid input. Terminating. (This line is written by another function that does an Integer.parseint()).
Run Code Online (Sandbox Code Playgroud)
我的代码是:
static String readLineFromStdIn(){
try{
java.io.BufferedReader stdin = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
String input = new String();
input = stdin.readLine();
System.out.println("Received '" + input + "'");
return(input);
}catch (java.io.IOException e) {
System.out.println(e);
}
return "This should not have happened";
}
Run Code Online (Sandbox Code Playgroud)
有线索吗?
我在程序PLSQL中需要这样的东西
arrayCount:=parArray.Count;
For i In 1 .. arrayCount Loop
lsPar(i):=parArray(i);
End Loop;
Run Code Online (Sandbox Code Playgroud)
可能吗?求求建议!:)
在GNU Emacs中,是什么[C-tab]?考虑:
(version)
"GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600)
of 2010-05-08 on G41R2F1"
(defun key-binding-test ()
(interactive)
(insert " key-binding-test called "))
Run Code Online (Sandbox Code Playgroud)
对于单个字母控制字符,必须在向量中使用字符常量:
(global-set-key [C-l] 'key-binding-test) ; does not work
(global-set-key [?\C-l] 'key-binding-test) ; works
Run Code Online (Sandbox Code Playgroud)
?\C-l可以在*scratch*缓冲区中进行评估:
?\C-l
12
Run Code Online (Sandbox Code Playgroud)
但要绑定C-Tab:
(global-set-key [?\C-tab] 'key-binding-test) ;does not work
; Debugger entered--Lisp error: (invalid-read-syntax "?")
(global-set-key [C-tab] 'key-binding-test) ; works
Run Code Online (Sandbox Code Playgroud)
当我尝试评估时C-tab:
C-tab ; Debugger entered--Lisp error: (void-variable C-tab)
Run Code Online (Sandbox Code Playgroud)
比较矢量的评估:
[?\C-l] ; input
[12] ; result
[C-tab] ; …Run Code Online (Sandbox Code Playgroud) 我在这里有一种奇怪的行为,我希望有人可以向我解释.
我在查询中有两个字段.一个是通过拍摄转换为日期的数字字段to_date('01/01/1960', 'mm/dd/yyyy') + somethingorother.另一个是文本字段,其中包含至少一个非日期值,该值将转换为日期to_date(textField, 'mm/dd/rrrr').如果我运行查询,它运行正常.但是,如果我将查询括select * from ( ) where field1 > field2起来,则会出现"ORA-01861:文字与格式字符串不匹配"错误.如果我尝试排除拉回文本字段的子查询的where子句中的已知非日期值,则无效.
我知道没有代码几乎不可能搞清楚,但我想知道是否有人可以向我解释为什么没有过滤器它可以工作,但是当我添加它时会爆炸.谢谢.
Oracle 10g 64位红帽企业Linux 5 64位
我目前可以访问规范化的第三方数据库.它们拥有大量数据,我的要求是通过连接大量表来公开物化VIEW.
表1:Example_Master列:MasterID(VARCHAR2(250))MasterName(VARCHAR2(250))行:9000万主键:MasterID
表2:Example_ChildA1列:ChildA1ID(VARCHAR2(250))MasterID(VARCHAR2(250))行数:2500万
表3:Example_ChildA1ID列:ChildA1ID(VARCHAR2(250))ChildA1Name(VARCHAR2(250))主键:ChildA1ID
表4:Example_ChildA2列:ChildA2ID(VARCHAR2(250))MasterID(VARCHAR2(250))行数:3500万
表5:Example_ChildA2ID列:ChildA2ID(VARCHAR2(250))ChildA2Name(VARCHAR2(250))主键:ChildA2ID
等等.,
每个子表可能有也可能没有等同于MASTERID的条目.所以我必须获得所有MASTERID及其相关的CHILD名称.如果任何Child没有等效值,则必须返回'NULL'.所以我现在在Materialized VIEW语法之下
SELECT a.MasterName, c.ChildA1Name, e.ChildA2Name, g.ChildA3Name
FROM
Example_Master a,
Example_ChildA1 b,
Example_ChildA1ID c,
Example_ChildA2 d,
Example_ChildA2ID e,
Example_ChildA3 f,
Example_ChildA3ID g
WHERE
c.ChildA1ID(+) = b.ChildA1ID
AND e.ChildA2ID(+) = d.ChildA2ID
AND g.ChildA3ID(+) = f.ChildA3ID
AND a.MasterID=b.MasterID (+)
AND a.MasterID=d.MasterID (+)
AND a.MasterID=f.MasterID (+)
Run Code Online (Sandbox Code Playgroud)
我必须加入另外5个像上面这样的子表,并且这个查询的成本已经变得如此巨大,以至于需要将近16分钟才能得到结果.有没有更好的方法来使用OUTER JOINS?如果您需要有关我的问题的更多详细信息,请告诉我.
谢谢!