我是Scala的新手.在2.7.7中,以下代码
abstract class C
case class CC() extends C
trait T
val c1 = CC()
val c2 = new CC() with T
println(c1.hashCode == c2.hashCode,c1 equals c2)
Run Code Online (Sandbox Code Playgroud)
版画
(false,true)
Run Code Online (Sandbox Code Playgroud)
而我本来期待的
(false,false)
Run Code Online (Sandbox Code Playgroud)
我错过了什么?提前致谢.
我有数据列表,如
a = [1,2,3,4]
b = ["a","b","c","d","e"]
c = ["001","002","003"]
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的另一个列表,混合了所有可能的a,b,c这样的情况
d = ["1a001","1a002","1a003",...,"4e003"]
Run Code Online (Sandbox Code Playgroud)
有没有任何模块或方法来生成d而没有写多个for循环?
我试图找出如何查询表(该表实际上是一个结果集,因此它将是一个子查询),将其分组ColA=ColB(见下文),并一步创建一个计算字段.
所以,如果我的测试数据看起来像
ColA ColB ColC
1 1 aaa 1 2 bbbb 1 3 cccc 2 2 dddd 3 3 eeee 3 4 ffff 3 5 gggg 3 6 hhhh 4 4 iiii 5 5 jjjj 6 6 kkkk 6 7 llll 6 8 mmmm
我想只检索行,ColA=ColB并添加一个新列,告诉我原始数据是否ColA重复.见下文.
ColA ColB ColC multiples
1 1 aaaa yes 2 2 dddd no 3 3 eeee yes 4 4 iiii no 5 5 jjjj no 6 6 kkkk yes
有人可以帮我解决语法问题吗?我一直在玩Group …
我正在尝试使用CASE语句编写GROUP BY子句,因此我可以根据查询中的参数值有条件地使用GROUP BY.这是我正在使用的查询(显着缩短)并且我一直得到"RVPname在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.并且DVPname无效且AEname无效.
SELECT
DVPname, RVPname, AEname, Dealer, Product, Distribution,
CASE WHEN @LEVEL = 'DVP' THEN DVPname
WHEN @LEVEL = 'RVP' THEN RVPname
WHEN @LEVEL = 'AE' THEN AEname
END AS NAME
..........other code here.....
GROUP BY Product, Distribution,
CASE WHEN @LEVEL = 'RVP' THEN AEname WHEN @LEVEL = 'DVP' THEN RVPname WHEN @LEVEL= 'AE' THEN Dealer END
Run Code Online (Sandbox Code Playgroud)
- 有谁知道如何做我想要完成的事情.当LEVEL ='DVP'时我想要GROUP BY RVPname,当LEVEL ='RVP'时我想要GROUP BY AEname ....有意义吗?
我想知道你是否可以在WHERE改变运算符的子句中做一个case语句.
我想要做的是根据布尔值过滤掉结果.
SELECT *
FROM table1
WHERE
CASE @Status
WHEN 1 THEN Name LIKE 'SOMETHING%'
WHEN 2 THEN Name NOT LIKE 'SOMETHING%'
END
Run Code Online (Sandbox Code Playgroud)
我想知道这是否可能?
我想在我的CASE语句中使用REGEXP_LIKE
2个问题
如何让REGEXP_LIKE在此CASE语句中工作?我收到以下错误消息
ORA-00904: "TRUE": invalid identifier
重新正则表达式,为什么select '12345678' from dual查询返回1?
正则表达式规则
0到6位,后跟0或1个小数点,后跟0到6位数.
with expression_row as
(select 'zzzz' as expression from dual union all
select '12345678' as expression from dual union all
select '12.33333' as expression from dual union all
select '.222222' as expression from dual)
select
expression,
case regexp_like( expression, '^\d{0,6}(\.{0,1}\d{0,6})$')
-- [0-6 digits][0-1 decimal][0-6 digits]
when TRUE then 'Y'
else 'N'
end as valid_y_n
from expression_row;
Run Code Online (Sandbox Code Playgroud)
期望的输出
zzzz N
12345678 N
12.33333 Y
.222222 …Run Code Online (Sandbox Code Playgroud) 我需要case在一个where子句中添加一个语句.我希望它根据TermDate的值运行下面的任何一个语句.
Select *
from myTable
where id = 12345
AND TermDate CASE
WHEN NULL THEN
AND getdate() BETWEEN StartDate AND DATEADD(dd, 30, StartDate)
ELSE
AND GETDATE < TermDate
END
Run Code Online (Sandbox Code Playgroud) 我正在努力了解如何在进度案例表达式中检查空值。我想查看是否存在一列并使用它,如果不使用后备列。例如,威廉的名字将由Bill在fn.special-char中覆盖。
我有以下查询:
SELECT
"PUB"."NAME"."LAST-NAME" as LastName,
CASE fn."SPECIAL-CHAR"
WHEN is null THEN "PUB"."NAME"."FIRST-NAME"
ELSE fn."SPECIAL-CHAR"
END as FirstName
FROM "PUB"."NAME"
LEFT OUTER JOIN "PUB"."DAT-DATA" fn on "PUB"."NAME"."NAME-ID" = fn."DAT-SRC-ID" and 11 = fn."FLD-FIELD-ID"
Run Code Online (Sandbox Code Playgroud)
当我运行查询时,我得到:
ORBC Progress OpenEdge Wire Protocol驱动程序] [OPENEDGE]语法错误SQL语句等于或大约为“,然后为” PUB“。” NAME“。” FIRST-“(10713)
如果我选择*,我会看到一切。它只是不喜欢空白部分。我还可以将when null更改为when'bob',并且它可以工作。
在进度数据库查询中使用空值是否需要做其他事情?
我在plsql中有点新,所以你能告诉我它存在一种否定案例的方法吗?我的意思是,这样:
select CASE DENOM_CURRENCY_CODE
WHEN != 'MXN' THEN 'convert to USD'
ELSE TO_CHAR(QUANTITY) --keep the quantity
END
Run Code Online (Sandbox Code Playgroud)
我收到了这个消息"ORA-00936:缺少表达"我也试过"<>"和"不是".谢谢阅读