2.1 வழக்கு அறிக்கை
SQL இல் ஒரு அறிக்கையை எழுத இரண்டு வழிகள் உள்ளன CASE
. முதல் நுழைவு ஜாவா மொழியிலிருந்து மாறுவது போலவும், இரண்டாவது வடிவம் பன்மையைப் போலவும் இருக்கும் if-else
.
முதல் விருப்பத்துடன் தொடங்குவோம் - சுவிட்சின் அனலாக். பொதுவான வடிவம்:
CASE case_value
WHEN value1 THEN result1
[WHEN value2 THEN result2] ...
[ELSE resultN]
END
உண்மையில் மிகவும் ஒத்த switch
, சொற்கள் மட்டும் சற்று வித்தியாசமாக உள்ளன:
SQL | ஜாவா |
---|---|
வழக்கு x | மாறு (x) { |
மதிப்பு போது | வழக்கு மதிப்பு: |
பின்னர் முடிவு | திரும்ப முடிவு; |
வேறு முடிவு | இயல்புநிலை: திரும்பும் முடிவு; |
முடிவு | } |
ஜாவாவிலிருந்து ஒரு உதாரணத்தை SQLக்கு மொழிபெயர்ப்போம்:
ஜாவா | SQL |
---|---|
|
|
2.2 CASE அறிக்கையின் இரண்டாவது பதிப்பு
ஆபரேட்டரின் இரண்டாவது பதிப்பும் உள்ளது CASE
, இது மேலே குறிப்பிட்டுள்ளபடி, பன்மை போன்றது if-else
. பொதுவான வடிவம்:
CASE
WHEN condition 1 THEN result1
[WHEN condition 2 THEN result2] ...
[ELSE resultN]
END
இங்கே, நிபந்தனைகள் வெறுமனே தொடர்ச்சியாக சரிபார்க்கப்படுகின்றன, அவற்றில் ஏதேனும் உண்மையாக இருந்தால், குறிப்பிட்ட முடிவு திரும்பப் பெறப்படும். நிபந்தனைகள் எதுவும் உண்மையாக இல்லாவிட்டால், இல் குறிப்பிடப்பட்ட மதிப்பு ELSE
.
ஜாவாவிலிருந்து ஒரு உதாரணத்தை SQLக்கு மொழிபெயர்ப்போம்:
ஜாவா | SQL |
---|---|
|
|
|
|
|
|
2.3 CASE அறிக்கையைப் பயன்படுத்தி சிக்கலைத் தீர்க்கவும்
சில சுவாரஸ்யமான கேள்விகளை எழுதுவோம். நினைவில் கொள்ளுங்கள், எங்களுக்கு ஒரு பணி இருந்தது - "காலாவதியானது!" பணி அட்டவணையில் கடந்த பணிகளின் பெயருக்கு . அதை எளிதாக செய்ய முடியும் CASE
.
காலக்கெடு புலத்திற்கு , இது அறிக்கையின் இரண்டாவது பதிப்பைப் போல் இருக்கும் CASE
:
CASE
WHEN deadline < CURDATE() THEN CONCAT('EXPIRED!', name)
ELSE name
END
ஆபரேட்டரைப் பயன்படுத்தி முழுமையான வினவலின் எடுத்துக்காட்டு CASE
:
SELECT
id,
emploee_id,
CASE WHEN deadline < CURDATE() THEN CONCAT('EXPIRED!', name) ELSE name END AS name,
deadline
FROM task
இந்த வினவலின் முடிவு இப்படி இருக்கும்:
ஐடி | பணியாளர்_ஐடி | பெயர் | காலக்கெடுவை |
---|---|---|---|
1 | 1 | காலாவதியான! முகப்பில் ஒரு பிழையை சரிசெய்யவும் | 2022-06-01 |
2 | 2 | பின்தளத்தில் ஒரு பிழையை சரிசெய்யவும் | 2022-06-15 |
3 | 5 | காபி வாங்கு | 2022-07-01 |
4 | 5 | காபி வாங்கு | 2022-08-01 |
5 | 5 | காபி வாங்கு | 2022-09-01 |
6 | (ஏதுமில்லை) | அலுவலகத்தை சுத்தம் செய்யுங்கள் | (ஏதுமில்லை) |
7 | 4 | வாழ்க்கையை அனுபவிக்கவும் | (ஏதுமில்லை) |
8 | 6 | வாழ்க்கையை அனுபவிக்கவும் | (ஏதுமில்லை) |
GO TO FULL VERSION