Sql server 如何在视图中使用我的表值函数?
我有一个表值函数,可以将字符串拆分为3部分,并在视图中使用它 当我使用其中一个部件时,其工作方式如下: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
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时,只能在选择列表中指定一个表达式
如何在我的主视图中显示yyyy和mm和dd?正如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?因为冗余和性能。