Sql server 积分有值表函数
多亏了本论坛的帮助,我才意识到使用值表函数可以使declare函数以某种方式工作,以便以后可以使用它创建视图。 我只是不知道如何把这些点连接起来。 valued table函数如下所示:Sql server 积分有值表函数,sql-server,tsql,Sql Server,Tsql,多亏了本论坛的帮助,我才意识到使用值表函数可以使declare函数以某种方式工作,以便以后可以使用它创建视图。 我只是不知道如何把这些点连接起来。 valued table函数如下所示: USE [m_DEV] GO --SET ANSI_NULLS ON --GO --SET QUOTED_IDENTIFIER ON --GO --CREATE VIEW [dbo].[Entries] AS CREATE FUNCTION [Manual_COUNTRIES_2019]()
USE [m_DEV]
GO
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
--CREATE VIEW [dbo].[Entries] AS
CREATE FUNCTION [Manual_COUNTRIES_2019]()
RETURNS TABLE
RETURN
SELECT *
FROM (
VALUES --risk_1
(1,'AX'),(1,'AY'),(1,'AQ'),(1,'BQ')
--risk_2
,(2,'AA'),(2,'AI'),(2,'AX')
-- @risk_3
,(3,'QE'),(3,'QT')
-- @risk_4
,(4,'AA'),(4,'AB'),(4,'AS'),(4,'AZ')
-- @risk_5
,(5,'BB'),(5,'BC'),(5,'CD')
) AS X (RiskNum, Code);
RETURN
END;
WITH Lead AS (
SELECT
CASE
WHEN a.[10_2_1_Country] IN (SELECT Code from 1 ) THEN '0'
WHEN a.[10_2_1_Country] IN (SELECT Code from 2 ) THEN '0.5'
WHEN a.[10_2_1_Country] IN (SELECT Code from 3 ) THEN '1'
WHEN a.[10_2_1_Country] IN (SELECT Code from 4 ) THEN '2'
WHEN a.[10_2_1_Country] IN (SELECT Code from 5 ) THEN '3'
END AS 'risk_country1'
FROM [dbo].[Manual_Entries_19] a
)
如何在“从1中选择代码”中将RiskNum、代码与连接
我尝试了不同的变化。我是否需要调用函数表:[Manual_COUNTRIES_2019]?但是怎么做呢
与创建功能[Manual_COUNTRIES_2019]相关的创建视图[dbo].[Entries]的位置在哪里我怀疑它是否能按目前的方式工作。您可以从TVF中获得如下值:
CASE
WHEN a.[10_2_1_Country] IN (SELECT Code FROM dbo.Manual_COUNTRIES_2019() WHERE RiskNum = 1) THEN '0'
WHEN a.[10_2_1_Country] IN (SELECT Code FROM dbo.Manual_COUNTRIES_2019() WHERE RiskNum = 2) THEN '0.5'
WHEN a.[10_2_1_Country] IN (SELECT Code FROM dbo.Manual_COUNTRIES_2019() WHERE RiskNum = 3) THEN '1'
WHEN a.[10_2_1_Country] IN (SELECT Code FROM dbo.Manual_COUNTRIES_2019() WHERE RiskNum = 4) THEN '2'
WHEN a.[10_2_1_Country] IN (SELECT Code FROM dbo.Manual_COUNTRIES_2019() WHERE RiskNum = 5) THEN '3'
END AS 'risk_country1'
对象1是什么?如果确实有一个名为1的对象,则必须对其进行定界和标识,因为以数值开头的对象名称必须是[1]。不过,老实说,如果您*确实*有一些对象名为,1,2,3`,等等,我强烈建议您重命名它们;上面的SQL似乎不完整。另外,a作为手动输入的别名没有什么意义。ME19将更加清晰。我也希望您没有像Manual_Entries_1、Manual_Entries_2、Manual_Entries_18这样的表,因为这样您就有了一个严重的非规范化数据库,您也应该寻求修复。@Lamu,谢谢您的评论。不用担心,所有表的名称和值都经过了调整和更改,这样我就可以在堆栈溢出时显示它,而不会显示太多内容。所以,是的,他们实际上都有其他的名字。一切都很好。很漂亮,一切都很好,我现在可以查看桌子了。谢谢你的1:1!学会了很多!