Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
替换Access 2003和SQL Server 2000中的输入行_Sql_Sql Server_Ms Access - Fatal编程技术网

替换Access 2003和SQL Server 2000中的输入行

替换Access 2003和SQL Server 2000中的输入行,sql,sql-server,ms-access,Sql,Sql Server,Ms Access,Access 2003的产出: ID |说明|数量|标题| Obj ------------------------------------------------------------- 17 |6124000.00 | | 18 |7330000.00 | 19 |1340000.00 | 8414 | 69327 22 |2120000.00 | 8414 | 69344 23 |3615000.00 | 8414 | 69327 24 |4320000.00 | 8414 | 6932

Access 2003的产出:

ID |说明|数量|标题| Obj
-------------------------------------------------------------

17 |6124000.00 | |
18 |7330000.00 |
19 |1340000.00 | 8414 | 69327
22 |2120000.00 | 8414 | 69344
23 |3615000.00 | 8414 | 69327
24 |4320000.00 | 8414 | 69327
25 |5809500.00 | 8414 | 69327

查询:

SELECT      TVFundBillDetail.ID ,
            TVFundBillDetail.HID ,
            TVFundBillDetail.Description ,
            TVFundBillDetail.Quantity ,
            TVFundBillDetail.Title ,
            TVTitle.Name TitleName ,
            Obj ,
            TVAllObjects.Name ObjName
     FROM   TVFundBillDetail
            LEFT OUTER JOIN TVTitle ON TVFundBillDetail.Title = TVTitle.Code
            LEFT OUTER JOIN TVAllObjects ON TVFundBillDetail.Obj = TVAllObjects.Code

问题:说明列中显示输入行的顺序。当title和obj为null时,则替换输入行的序列。应用程序是access 2003,数据库管理系统是SQL Server 2000,实现这一点可能有很多方法。 要访问,只需在查询中使用
Nz()
,如下所示:

...
Nz(TVFundBillDetail.Title, "    ")
...
如果
Title
NULL
,则会得到4个空格(如果愿意,也可以使用
“0000”

对于SQL server,等效函数是
COALESCE()


如果您将该查询用作普通的Qccess查询,则第一个查询将起作用。如果您正在使用传递查询或公开SQL Server视图,则第二个视图将起作用。

@omid,发生这种情况的原因是您的
TVFundBillDetail.Title
不是字符串而是数值,
COALESCE()
将使用该类型,并最终将空格转换为
0
。尝试使用类似于
COALESCE(CAST(TVFundBillDetail.Title作为VARCHAR(5)),'')的东西
。我不能测试这些,因为我不知道;我的计算机上现在没有安装SQL Server。
...
COALESCE(TVFundBillDetail.Title, "    ")
...