小编use*_*188的帖子

在COALESCE中使用SELECT

如何更正以下SQL代码,特别是COALESCE部分?

insert into Stmt G (ID,blah,foo)
select
coalesce(SELECT ID FROM Stmt G WHERE G.CLAIMNO=C.CLNUMBER, select StmtSeq.nextval from dual),
c.blah,
d.foo
from claim c
left join d on ...;
Run Code Online (Sandbox Code Playgroud)

如果ClaimNo匹配,我将从Stmt表中获取ID,否则创建一个新ID.SQL中不允许这样做吗?我怎么能写这个陈述?

我现在正在coalesce部分出现"Missing Expression"错误.

sql oracle plsql oracle-sqldeveloper

18
推荐指数
1
解决办法
1万
查看次数

如何在一个语句中向SQL命令添加多个参数?

我有六行参数,如下所示:

    cmd.Parameters.AddWithValue("@variable1", myvalue1);
    cmd.Parameters.AddWithValue("@variable2", myvalue2);
    cmd.Parameters.AddWithValue("@variable3", myvalue3);
Run Code Online (Sandbox Code Playgroud)

等等.

有没有办法在不直接插入cmd.CommandText的情况下压缩这一点?

编辑:我想我可以使用一个很好的老式阵列.我决定坚持这一点.

c# sql

9
推荐指数
2
解决办法
2万
查看次数

查询以将相同的ID分配给正在插入的行(如果它已存在于表中)

我将客户记录插入到表中,如果已存在同名记录,我将为新插入的记录分配相同的ID.

假设表T有此记录:

ID | Name | Phone_Number | Date_Inserted
105| Sam  | 111111       | 04/03/2014
106| Rita | 222222       |04/03/2014
Run Code Online (Sandbox Code Playgroud)

我从表A中插入这个:

Name| Phone_Number
Sam | 333333
Run Code Online (Sandbox Code Playgroud)

插入后,表T应该具有:

ID | Name | Phone_Number | Date_Inserted
105| Sam  | 111111       | 04/03/2014
106| Rita | 222222       | 04/03/2014
105| Sam  | 333333       | 04/04/2014
Run Code Online (Sandbox Code Playgroud)

没有上述变化,它看起来像:

INSERT INTO T SELECT CustID.nextval,Name,Phone_Number,SYSDATE FROM A;
Run Code Online (Sandbox Code Playgroud)

我在考虑使用,

INSERT INTO T
  SELECT CASE 
           WHEN NOT EXISTS(select null from T WHERE T.Name=A.Name) THEN CustID.nextVal
           ELSE (select ID from …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql

5
推荐指数
2
解决办法
1967
查看次数

标签 统计

sql ×3

oracle ×2

plsql ×2

c# ×1

oracle-sqldeveloper ×1