Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 server 如何在视图中使用我的表值函数?_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 如何在视图中使用我的表值函数?

Sql server 如何在视图中使用我的表值函数?,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个表值函数,可以将字符串拆分为3部分,并在视图中使用它 当我使用其中一个部件时,其工作方式如下: SELECT dbo.Health_Komak2.CDate AS HK2CreatedDateMiladi,----> (select yyyy from dbo.[DateToShamsiSepratePart](dbo.Health_Komak2.CDate)) as xxxxx, Ain74ID, dbo.Health_Komak2_Paymnets.Price A

我有一个表值函数,可以将字符串拆分为3部分,并在视图中使用它

当我使用其中一个部件时,其工作方式如下:

SELECT  dbo.Health_Komak2.CDate AS HK2CreatedDateMiladi,----> (select yyyy from dbo.[DateToShamsiSepratePart](dbo.Health_Komak2.CDate)) as xxxxx, Ain74ID, 
     dbo.Health_Komak2_Paymnets.Price AS HK2Pprice from .......
但当我使用3部分在视图中显示时,如下所示:

    SELECT  dbo.Health_Komak2.CDate AS HK2CreatedDateMiladi,----> (select yyyy,mm,dd from dbo.[DateToShamsiSepratePart](dbo.Health_Komak2.CDate)) as xxxxx, Ain74ID, 
     dbo.Health_Komak2_Paymnets.Price AS HK2Pprice from .......
我在SQL server中遇到此错误:

当子查询未引入EXISTS时,只能在选择列表中指定一个表达式


如何在我的主视图中显示yyyymmdd

正如John Cappelletti所说,在我的研究之后,我可以在查询中使用交叉应用。使用交叉应用,我们可以返回多个列

SELECT ---> c.yyyy,c.mm,c.dd, dbo.tbs_InsuranceCompany.Title AS InsuranceName, dbo.Health_Coverages.Coverages AS HCoveragesName, dbo.Health_Komak2.CDate AS HK2CreatedDateMiladi,  dbo.AinName74.Descr AS AinName74Name, dbo.Health_Coverages.Ainame_74_ID AS AinName74ID, 
     dbo.Health_Komak2_Paymnets.Price AS HK2Pprice FROM  dbo.Health_Komak2 INNER JOIN      ........>  cross apply  dbo.[DateToShamsiSepratePart](dbo.Health_Komak2.CDate) c

如果我没听错,为什么你不能把第一个子查询再复制两次,然后在另外两个子查询中分别选择
mm
dd
作为单独的列?你可以在交叉应用程序中使用表值函数你可以说,为什么我要从查询中使用3次来获得yyy和mm以及dd?因为冗余和性能。