Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 带有NULL的大小写不起作用_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

Sql 带有NULL的大小写不起作用

Sql 带有NULL的大小写不起作用,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,如果列的值为NULL,我想给它一些值 insert into inward_doc_tracking_trl (Mkey,Entry_Sr_No,N_UserMkey,N_Department,CStatus_Flag,Remarks, CUser_Id, U_Datetime,NStatus_Flag,Delete_Flag, CDept_Id, Ref_Mkey,No_Of_Days,Approved_Amount,Chq_No,Chq_

如果列的值为
NULL,我想给它一些值

insert into inward_doc_tracking_trl 
    (Mkey,Entry_Sr_No,N_UserMkey,N_Department,CStatus_Flag,Remarks,     
    CUser_Id,
    U_Datetime,NStatus_Flag,Delete_Flag, 
    CDept_Id,
    Ref_Mkey,No_Of_Days,Approved_Amount,Chq_No,Chq_dated,Chq_Bank,Chq_Amount,
    Vendor_MKey,Vendor_Comp_Mkey,Project_Mkey,Program_mkey,Payment_MKey,Due_Date,Updated_Remarks,Updated_Bill_no,
    Updated_Bill_Date,Updated_Bill_Amt,Party_Name,Acc_mkey,
    TotalDeductions,Broker_Mkey,Customer_Mkey,Payable_Amt,Balance_Amt)

     values (@inv_trl_mkey,@entry_sr_no,@Nuser_mkey,@n_department,@nstatus_flag2,@remarks,               
        CASE WHEN (@cuserid IS NULL) THEN 'YES' ELSE 'NO' END AS @cuserid,
    @u_datetime,@nstatus_flag,@delete_flag,     
        CASE WHEN (@cdept_id IS NULL) THEN 'YES' ELSE 'NO' END AS @cdept_id,
    @inv_hdr_mkey,@No_Of_Days,
     @Approved_Amount,@Chq_No,@Chq_dated,
     @Chq_Bank,@Chq_Amount,@Vendor_MKey,@Vendor_Comp_Mkey,@Project_Mkey,@Program_mkey,@Payment_MKey,@Due_Date  
    ,@Updated_Remarks,@Updated_Bill_no,@Updated_Bill_Date,@Updated_Bill_Amt,@Party_Name,
    @Acc_mkey,@TotalDeductions,@Broker_Mkey,@Customer_Mkey,@Payable_Amt,@Balance_Amt)  
但得到的错误是

关键字“AS”附近的语法不正确


如错误所示,问题与
案例无关,而与
As
有关。因此,将
作为
删除:

 values (@inv_trl_mkey, @entry_sr_no, @Nuser_mkey, @n_department, @nstatus_flag2 ,@remarks,               
    (CASE WHEN (@cuserid IS NULL) THEN 'YES' ELSE 'NO' END),
     @u_datetime,@nstatus_flag,@delete_flag,     
    (CASE WHEN (@cdept_id IS NULL) THEN 'YES' ELSE 'NO' END),
    . . . 

VALUES()
子句中命名表达式的值是没有意义的。

正如错误所示,问题与
大小写无关,而与
As
有关。因此,将
作为
删除:

 values (@inv_trl_mkey, @entry_sr_no, @Nuser_mkey, @n_department, @nstatus_flag2 ,@remarks,               
    (CASE WHEN (@cuserid IS NULL) THEN 'YES' ELSE 'NO' END),
     @u_datetime,@nstatus_flag,@delete_flag,     
    (CASE WHEN (@cdept_id IS NULL) THEN 'YES' ELSE 'NO' END),
    . . . 
VALUES()
子句中命名表达式的值是没有意义的。

从查询中删除“AS”,因为您将在表中插入,所以不再需要它

 CASE WHEN (@cuserid IS NULL) THEN 'YES' ELSE 'NO' END
从查询中删除“AS”,因为您将在表中插入,所以不再需要它

 CASE WHEN (@cuserid IS NULL) THEN 'YES' ELSE 'NO' END

如果我理解正确,您使用的是
values
中声明变量的值。如果你在那里做一些计算,你不应该把它命名

AS @cuserid
无论如何:你不允许这样命名任何表达式

你必须区分

  • 使用变量的值和
  • 为表达式指定别名
VALUES
中,您只给出一个值列表:

VALUES(@var1,@var2,@var3+5)
将使用
@var1
@var2
的值,并将使用
var3
进行一些计算此处不需要任何别名

更新

您可以考虑在将变量设置为变量<代码> @ CUSERID的地方执行此逻辑。在这种情况下,您可以在

值中使用此变量,而不必担心是否为
NULL

如果我理解正确,您使用的是
值中声明变量的值。如果你在那里做一些计算,你不应该把它命名

AS @cuserid
无论如何:你不允许这样命名任何表达式

你必须区分

  • 使用变量的值和
  • 为表达式指定别名
VALUES
中,您只给出一个值列表:

VALUES(@var1,@var2,@var3+5)
将使用
@var1
@var2
的值,并将使用
var3
进行一些计算此处不需要任何别名

更新

您可以考虑在将变量设置为变量<代码> @ CUSERID的地方执行此逻辑。在这种情况下,您可以在

值中使用此变量,而不必担心是否为
NULL

插入到内部文档跟踪中 (Mkey,条目编号,N用户Mkey,N部门,CStatus标志,备注,
客户号, U_日期时间、NStatus_标志、Delete_标志、, CDept_Id, 参考编号、天数、批准金额、Chq编号、Chq日期、Chq银行、Chq金额、, 供应商、供应商、公司、项目、计划、付款、到期日、最新备注、最新账单号、, 更新账单日期、更新账单金额、当事人姓名、账户、, 扣除总额、经纪人、客户、应付金额、余额) 选择(@inv_trl_mkey、@entry_sr_no、@user_mkey、@n_department、@nstatus_flag2、@comments,
如果(@cuserid为NULL),则“是”或“否”以cuserid结尾, @u_datetime、@nstatus_标志、@delete_标志,
如果(@cdept_id为NULL),则“是”,否则“否”以cdept_id结尾, @inv_hdr_mkey,@No_天, @批准金额,@Chq\U编号,@Chq\U日期, @Chq_银行、@Chq_金额、@Vendor_MKey、@Vendor_Comp_MKey、@Project_MKey、@Program_MKey、@Payment_MKey、@到期日
,@Updated\u备注,@Updated\u账单号,@Updated\u账单日期,@Updated\u账单金额,@Party\u姓名,
@Acc\u mkey、@TotalDeclarations、@Broker\u mkey、@Customer\u mkey、@Payment\u Amt、@Balance\u Amt)强文本 (Mkey,条目编号,N用户Mkey,N部门,CStatus标志,备注,
客户号, U_日期时间、NStatus_标志、Delete_标志、, CDept_Id, 参考编号、天数、批准金额、Chq编号、Chq日期、Chq银行、Chq金额、, 供应商、供应商、公司、项目、计划、付款、到期日、最新备注、最新账单号、, 更新账单日期、更新账单金额、当事人姓名、账户、, 扣除总额、经纪人、客户、应付金额、余额) 选择(@inv_trl_mkey、@entry_sr_no、@user_mkey、@n_department、@nstatus_flag2、@comments,
如果(@cuserid为NULL),则“是”或“否”以cuserid结尾, @u_datetime、@nstatus_标志、@delete_标志,
如果(@cdept_id为NULL),则“是”,否则“否”以cdept_id结尾, @inv_hdr_mkey,@No_天, @批准金额,@Chq\U编号,@Chq\U日期, @Chq_银行、@Chq_金额、@Vendor_MKey、@Vendor_Comp_MKey、@Project_MKey、@Program_MKey、@Payment_MKey、@到期日
,@Updated\u备注,@Updated\u账单号,@Updated\u账单日期,@Updated\u账单金额,@Party\u姓名,
@Acc_mkey、@TotalDeclarations、@Broker_mkey、@Customer_mkey、@Payment_Amt、@Balance_Amt)strong文本

您的陈述是正确的,只是如果需要使用AScase,请不要使用AS,而要使用Abihabi87所述的case陈述中的块。最重要的一点是,当列数据类型为数值时,不能将varchar数据保存在列中。为此,您需要更改列的数据类型或在列中保存数值。例如,您可以使用“是/否”,而不是使用“0/1”。

您的陈述是正确的。如果您需要使用AS,请不要在case陈述中使用AS,而不要在case陈述中使用Abihabi87所述的块。最重要的一点是,当列数据类型为数值时,不能将varchar数据保存在列中。为此,您需要更改列的数据类型或在列中保存数值。例如,您可以使用“是/否”,而不是使用“0/1”。

我在存储过程中使用此选项。这就是为什么要这样加。现在获取错误为
Erro