উপাদান নামের জন্য পরিবর্তনশীল


9

আমার এই টিএসকিউএল কোড রয়েছে যা ঠিক আছে:

SELECT 
c.logguid,
a.b.value('./PropertyValue', 'varchar(max)') asd
  FROM [dnn].[dbo].[EventLog2] c

cross apply sss.nodes('/LogProperties/LogProperty[PropertyName=sql:variable("@x") and PropertyValue=sql:variable("@y")]') as a(b)

যাইহোক, আমি যা করতে সক্ষম হতে চাই তা হ'ল বহু জোড়া মানগুলির গতিশীল তালিকায় পাস করা যা প্রতিটিগুলির মধ্যে OR'd হয় ie

SELECT 
c.logguid,
a.b.value('./PropertyValue', 'varchar(max)') asd
  FROM [dnn].[dbo].[EventLog2] c

cross apply sss.nodes(
'/LogProperties/LogProperty[PropertyName=sql:variable("@x") and PropertyValue=sql:variable("@y")
or
PropertyName=sql:variable("@a") and PropertyValue=sql:variable("@b")
]'
) as a(b)

এটি করার কোন উপায় আছে?


1
আমি বুঝতে পেরেছি তা নিশ্চিত করার জন্য, এখানে @ সি এবং @ ডি ইত্যাদি থাকতে পারে?
wtjones

উত্তর:


2

ভেরিয়েবল তালিকা বা অ্যারের প্রয়োজন এমন যে কোনও প্যারামিটার সম্ভবত কোনও ব্যবহারকারী-সংজ্ঞায়িত টেবিল প্রকারের জন্য ভাল প্রার্থী। আমি টাইপটি তৈরি করব:

CREATE TYPE [PropertyVariableTableType] AS TABLE (
    PropertyName nvarchar(255),
    PropertyValue nvarchar(255) )

সারণী প্রকারগুলি অন্য যে কোনও প্রকারের মতো সঞ্চিত পদ্ধতির পরামিতি হিসাবে ব্যবহার করা যেতে পারে। এরপরে আপনি হয় ব্যবহারকারী-সংজ্ঞায়িত টেবিলের সাথে যোগ দিতে পারেন বা ক্যোরিটিকে গতিশীলরূপে তৈরি করতে সারিগুলিকে পুনরাবৃত্তি করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.