ورود

View Full Version : سوال: جستجوی عددی



reza_program
سه شنبه 12 مرداد 1389, 09:42 صبح
سلام
من میخوام ی جستجوی عددی داشته باشم
ولی مثل جستجوی رشته ای که با دستور LIKE و علامت % استفاده میشه:



select * from Stuff where SName like 'A%'


میخوام مثلا اگر 1 وارد شد کد های 11و111 و امثال این رو برام بیاره

نوع فیلد کد هم Bigint هست

با سی شارپ2008 و اس کیو ال 2005

ممنون میشم اگه راهنمایی کنید.

pezhvakco
سه شنبه 12 مرداد 1389, 11:10 صبح
درود :
تا جایی که می دونم دستوری برای این کار نیست .
ولی می تونی از دستور زیر استفاده کنی >

LEFT(column, number) جدا کردن تعداد کاراکتر مشخص، از سمت چپ مقادير ستون

فکر خوش .

محمد سلیم آبادی
سه شنبه 12 مرداد 1389, 11:52 صبح
میخوام مثلا اگر 1 وارد شد کد های 11و111 و امثال این رو برام بیاره

اعدادی را بدست آورد که در آن رقم 1 وجود داشته باشد یا اینکه اعدادی که تمام ارقامش 1 باشد؟

reza_program
سه شنبه 12 مرداد 1389, 12:14 عصر
اعدادی را بدست آورد که در آن رقم 1 وجود داشته باشد یا اینکه اعدادی که تمام ارقامش 1 باشد؟

نه مثلا 1 رو که وارد کردیم 11و12 و ... 111 و 123 نمایش داده بشن

یعنی هر چی کد که اول 1 هست!

دقیقا مثل جستجوی رشته ای که مثلا ع رو وارد که بکنیم
علی و علیرضا و عبداله و ... هر چی اسم که با ع شروع میشه رو نمایش میده!

محمد سلیم آبادی
سه شنبه 12 مرداد 1389, 12:20 عصر
یک روش همونی هست که در پست 2 وجود داره. یعنی ابتدا اعداد را تبدیل به رشته می کنید و با ارزش ترین رقم را انتخاب کنید و مساوی 1 قرار می دین. به این شکل:

SELECT * FROM table
WHERE LEFT(CAST(Number AS VARCHAR(10)), 1) = '1';

pezhvakco
سه شنبه 12 مرداد 1389, 13:46 عصر
ابتدا اعداد را تبدیل به رشته می کنید
من امتحان کردم، بدون دستور تبدیل هم جواب میده .

فکر خوش .

محمد سلیم آبادی
سه شنبه 12 مرداد 1389, 14:03 عصر
تبدیل در هر دو صورت اتفاق می افتد. وقتی بطور صریح تبدیل نکنیم خود SQL Server این کار را انجام میده.
مثلا نتیجه تابع left یک رشته هست و وقتی که این مقدار را در 1 ضرب کنیم تبدیل به عددی میشه، بدون هیچ دخالتی توسط کاربر.