मैं सभी कैप्स में कॉलम मान कैसे प्राप्त कर सकता हूं? जैसा LastName = 'SMITH'
बजाय 'Smith'
SQL सर्वर में सभी कैप्स में मान कैसे खोजें?
यहाँ मैं क्या कोशिश कर रहा था है ...
SELECT *
FROM MyTable
WHERE FirstName = UPPER(FirstName)
मैं सभी कैप्स में कॉलम मान कैसे प्राप्त कर सकता हूं? जैसा LastName = 'SMITH'
बजाय 'Smith'
SQL सर्वर में सभी कैप्स में मान कैसे खोजें?
यहाँ मैं क्या कोशिश कर रहा था है ...
SELECT *
FROM MyTable
WHERE FirstName = UPPER(FirstName)
आप केस संवेदनशील संयोजन को मजबूर कर सकते हैं;
select * from T
where fld = upper(fld) collate SQL_Latin1_General_CP1_CS_AS
डिफ़ॉल्ट रूप से, एसक्यूएल तुलना केस-संवेदी है।
क्या आप इसे अपने कहां के रूप में उपयोग करने का प्रयास कर सकते हैं?
WHERE PATINDEX(FirstName + '%',UPPER(FirstName)) = 1
एक नज़र here
लगता है आप एक केस-संवेदी मिलान निर्दिष्ट करने के लिए कुछ ही विकल्प
VARBINARY (लम्बाई)
उपयोग मुक़ाबला करने के लिए स्ट्रिंग डाली है है
वें गणना तार के ई BINARY_CHECKSUM() की तुलना करने के
परिवर्तन तालिका स्तंभ के COLLATION संपत्ति
उपयोग अभिकलन कॉलम (VARBINARY की अंतर्निहित गणना)
आप एक सर्वर मिलान है जो उपयोग करने की आवश्यकता केस संवेदी की तरह तो:
SELECT *
FROM MyTable
WHERE FirstName = UPPER(FirstName) Collate SQL_Latin1_General_CP1_CS_AS
प्रयास करें
+०१२३५१६४१०६१SELECT *
FROM MyTable
WHERE FirstName = UPPER(FirstName) COLLATE SQL_Latin1_General_CP1_CS_AS
यह संयोजन केस संवेदनशील तुलना की अनुमति देता है।
आप निम्नलिखित (from MSDN) क्या करने की जरूरत है कि आप अपने डेटाबेस का मिलान को बदलने के लिए, ताकि आप अपने प्रश्नों में एक केस-संवेदी मिलान specifiy की जरूरत नहीं करना चाहते हैं:
1) सुनिश्चित करें कि आपने आपके उपयोगकर्ता डेटाबेस और उन सभी वस्तुओं को फिर से बनाने के लिए आवश्यक सभी जानकारी या स्क्रिप्ट्स।
2) बीसीपी उपयोगिता जैसे टूल का उपयोग करके अपने सभी डेटा निर्यात करें।
3) सभी उपयोगकर्ता डेटाबेस ड्रॉप करें।
4) सेटअप कमांड की SQLCOLLATION प्रॉपर्टी में नए संयोजन को निर्दिष्ट करने वाले मास्टर डेटाबेस को पुनर्स्थापित करें। उदाहरण के लिए:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]
/SQLCOLLATION=CollationName
5) सभी डेटाबेस और उन्हें में सभी वस्तुओं को बनाने के लिए।
6) अपने सभी डेटा आयात करें।
प्रयास करें मैं उस के लिए एक सरल UDF
बनाई गई इस
SELECT *
FROM MyTable
WHERE UPPER(FirstName) COLLATE Latin1_General_CS_AS = FirstName COLLATE Latin1_General_CS_AS
में अच्छा उदाहरण मिल सकते हैं:
create function dbo.fnIsStringAllUppercase(@input nvarchar(max)) returns bit
as
begin
if (ISNUMERIC(@input) = 0 AND RTRIM(LTRIM(@input)) > '' AND @input = UPPER(@input COLLATE Latin1_General_CS_AS))
return 1;
return 0;
end
तो आप आसानी से इसे में किसी भी स्तंभ पर उपयोग कर सकते हैं WHERE
खंड।
SELECT *
FROM MyTable
WHERE dbo.fnIsStringAllUppercase(FirstName) = 1
यही काम करना चाहिए:
ओपी उदाहरण का उपयोग करें। आपको क्या परिणाम मिला? – Polynomial
@ पॉलिनोमियल, मुझे बस वही परिणाम मिल रहे हैं जैसे कि मैं "WHERE FirstName = FirstName" चलाता हूं ... शायद एन्कोडिंग अलग होने की आवश्यकता है (अगर यह समझ में आता है .. idk मैं वास्तव में किस बारे में बात कर रहा हूं) – daveomcd