我寫標量變量函數返回一個整數映射一則strName。以下是我的腳本:Scalar_Variable功能的多個和語句返回「NULL」在SQL
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[Lookup_BSource_Value]
(
-- Add the parameters for the function here
@AVal nvarchar(100)
)
RETURNS nvarchar(100)
AS
BEGIN
-- Declare the return variable here
DECLARE @Val nvarchar(100)
SELECT @Val = Val
FROM SMBase
WHERE AName = 'a_source'
AND (OTypeCode = 1084)
AND (AVal = (@AVal))
RETURN @Val
END
我應該得到「BA」的結果,但我收到「NULL」。我的語法對於多個AND語句是否正確?
編輯 *
使用前在我的SSIS包的功能,我只是做一個簡單的SELECT dbo.Lookup_BSource_Value(XXXXXXXXX)
這使我空。
下面是我查詢的表的邏輯模式:
USE [MSCRM_M_RC]
GO
/****** Object: Table [dbo].[SMBase] Script Date: 1/21/2014 6:29:48 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SMBase](
[OTypeCode] [int] NOT NULL,
[AName] [nvarchar](100) NOT NULL,
[AVal] [int] NOT NULL,
[LaId] [int] NOT NULL,
[OrgId] [uniqueidentifier] NOT NULL,
[Val] [nvarchar](4000) NULL,
[DOrder] [int] NULL,
[VNumber] [timestamp] NULL,
[SMId] [uniqueidentifier] NOT NULL,
CONSTRAINT [cndx_PrimaryKey_SMap] PRIMARY KEY CLUSTERED
(
[SMId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY],
CONSTRAINT [UQ_SMap] UNIQUE NONCLUSTERED
(
[OTCode] ASC,
[AName] ASC,
[AValue] ASC,
[LaId] ASC,
[OrgId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SMBase] ADD CONSTRAINT [DF_SMa_SMId] DEFAULT (newid()) FOR [SMId]
GO
* 編輯 **
以下是我的我的StringMapTable的邏輯模式:
StringMap(SMID pk, OTypeCode,AName, AVal, LaID, OrgID fk, Val, DOrder, VNumber)
下面是我的我的TPTRepair表的邏輯模式:
TPTRepair(TPTRepairID pk, Name, Source, TT, LTHrs, CustID fk, PID fk)
的問題是以下內容:
「源」 字段是在TPTRepair的整數。我正在寫下面的標量函數來引用StringMap以從StringMap中的Value列返回字符串值。我必須有一對夫婦,因爲阿富汗國家發展戰略HASE AName向=「a_source」和OTypeCode有一個NULL到1084 =
我的標量函數的結果,不應該。我的標量函數中的多重AND語句的語法是否正確?
你能告訴基礎表的模式,一些樣本數據,以及你是如何準確地調用該函數? –
@AaronBertrand我已經編輯爲你請 –
一些示例數據將是很好的內容原來的問題,以及你正在使用的實際*** ***語法,不'(XXXXXXXX)'。 –