টি-এসকিউএল এবং যেখানে যেখানে% পরামিতি% বিধি


84

আমি একটি বিবৃতি লেখার চেষ্টা করছিলাম যা যেখানে '% টেক্সট%' শুল্কটি পছন্দ করে সেখানে লেখার জন্য পরামিতি ব্যবহার করার চেষ্টা করার পরে আমি ফলাফল পাচ্ছি না। উদাহরণস্বরূপ, এটি কাজ করে:

SELECT Employee WHERE LastName LIKE '%ning%'

এটি ব্যবহারকারীদের ফলেনিং, ম্যানিং, নিংল ইত্যাদি ফিরিয়ে আনবে তবে এই বিবৃতিটি তা করবে না:

DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'

কোন ফলাফল পাওয়া যায়নি. কোনও পরামর্শ? আগাম ধন্যবাদ.

উত্তর:


161

এটা করা উচিত:

...
WHERE LastName LIKE '%' + @LastName + '%';

পরিবর্তে:

...
WHERE LastName LIKE '%@LastName%'

4
প্রশ্নের পূর্ববর্তী টিপ জন্য ধন্যবাদ। তবে তা হয়নি। যাইহোক একটি উচ্চ সম্পাদনকারী উত্তরের সন্ধানে - এটি দরকারী বা না? :)
BonCodigo

4
@ বোনকোডিগো আমি সত্যই জানি না, পারফরম্যান্স এবং অপ্টিমাইজেশন আমার অঞ্চল নয়। তদ্ব্যতীত, এই ফাংশনগুলি বিক্রেতা নির্দিষ্ট, আপনার ক্ষেত্রে এটি ওরাকল আরডিবিএমএস কীভাবে তাদের মূল্যায়ন করে তার উপর নির্ভর করে এবং আমি ওরাকলকে জানি না। দুঃখিত
মাহমুদ গামাল

4
এটি আমার পক্ষে কাজ করে না। % অ্যাডপ্যারামিটার বিভাগে থাকা দরকার। দেখুন জেমস Curran উত্তর এখানে stackoverflow.com/questions/251276/...
bendecko

4
আমার উত্তর দেখুন (বর্তমানে নীচে)। ওয়াইল্ডকার্ড-প্রতীকটি সিক্লু-কোয়েরির অংশ নয়, অনুসন্ধান অভিব্যক্তির অংশ ART এটি ব্যবহারকারীর দ্বারা প্রবেশ করা হয়েছে (বা, যদি ওয়াইল্ডকার্ড-অনুসন্ধান পূর্বনির্ধারিত থাকে তবে ব্যবহারকারীদের অনুসন্ধান এক্সপ্রেশন ইনপুটটিতে সংযুক্ত করা হয়)। আপনি ডাটাবেস-স্তরের উপর স্ট্রিং concatanation মাধ্যমে এটি যোগ, তাহলে একটা unreusable ক্যোয়ারী স্ট্রিং পেতে
SWE

16

সঠিক উত্তরটি হ'ল, যেহেতু- '%'সাইনটি আপনার অনুসন্ধানের অভিব্যক্তির অংশ, এটি আপনার ভ্যালুয়ের অংশ হওয়া উচিত, সুতরাং আপনি @LastNameযেদিকেই সেট করুন (এটি কোনও প্রোগ্রামিং ভাষা থেকে বা টিএসকিউএল হতে) আপনার এটিতে সেট করা উচিত'%' + [userinput] + '%'

বা, আপনার উদাহরণে:

DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'

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