এসকিউএল একই টেবিলের অন্য কলামের মানের সমান এক কলামের মান সেট করে


97

দুটি DATETIME কলাম সহ আমার একটি টেবিল রয়েছে।

তাদের মধ্যে একটি কখনও নুল হয় না, তবে তাদের মধ্যে একটি কখনও কখনও NULL হয়।

আমার একটি ক্যোয়ারী লিখতে হবে যা কলাম B এর কলাম A এর জন্য সমস্ত NULL সারি সেট করবে A.

আমি এই উদাহরণটি ব্যবহার করে দেখেছি তবে নির্বাচিত উত্তরের এসকিউএল কার্যকর হয় না কারণ মাইএসকিউএল ওয়ার্কব্যাঞ্চ আপডেটে FROM পছন্দ করে না বলে মনে হয়।

উত্তর:


159

আপনি কেবল একটি টেবিলে কাজ করছেন এমন শোনাচ্ছে এরকম কিছু:

update your_table
set B = A
where B is null


21

আমি এটি এইভাবে করব:

UPDATE YourTable SET B = COALESCE(B, A);

CoALESCE এমন একটি ফাংশন যা তার প্রথম অ-নাল আর্গুমেন্টটি দেয়।

এই উদাহরণস্বরূপ, প্রদত্ত সারিতে বি যদি শূন্য না হয় তবে আপডেটটি কোনও অন-আপ নয়।

বি যদি শূন্য থাকে, তবে COALESCE এটিকে এড়িয়ে যায় এবং পরিবর্তে এ ব্যবহার করে।


5

আমি মনে করি না যে অন্য উদাহরণটি আপনি সন্ধান করছেন। যদি আপনি একই টেবিলের অন্য কলাম থেকে কেবল একটি কলামটি আপডেট করছেন তবে আপনার এমন কিছু ব্যবহার করতে সক্ষম হওয়া উচিত।

update some_table set null_column = not_null_column where null_column is null

1

এখানে নমুনা কোড রয়েছে যা আপনাকে কলাম A তে কলাম B এ মোকাবেলায় সহায়তা করতে পারে:

UPDATE YourTable
SET ColumnB = ColumnA
WHERE
ColumnB IS NULL
AND ColumnA IS NOT NULL;

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