3

ユーザーが選択するテーブルの任意の列で検索を実行したい.このために、列の名前を格納する2つの文字列変数searchkeyと、検索する値のsearchvalueがあります。

これは同じことに対する私のクエリです:

and (Select Case @SearchKey 
            When 'Title' then Parcel.Title 
            When 'Unit_No' then Unit_No 
            When 'AgentName' then App_User.Name
            When 'TenantName' then Client_Personal_Information.First_Name
            When 'UnitRefNo' then Unit_Ref_No

                        End )  like @SearchValue

このクエリは正常に機能し、すべての列に nvarchar 型の値があるため、必要な出力が得られます。

しかし、これを上記のクエリに追加すると

When 'Rent' then Unit_Transform.Rent_Per_Annum
When 'SecurityDeposit' then [Unit_Transform].[Security_Deposit] 

10 進数値を保持する列の場合、これら 2 つの列の出力のみが返されます。nvarchar 値を保持する列を選択すると、レコードが見つからないと表示されます。

なぜこれが起こっているのかについてのアイデア。

4

1 に答える 1

1

次のように、小数フィールドを varchar にキャストする必要があると思います。

When 'Rent' then CAST( Unit_Transform.Rent_Per_Annum as Varchar )

そして、ここにフィドルがあります。キャストを削除すると、実際にエラーが発生します。

幸運を。

于 2013-02-02T06:46:16.810 に答える