सबसे अच्छा तरीका है एसक्यूएल सर्वर में एक स्ट्रिंग में प्रत्येक शब्द के पहले अक्षर को कैपिटल करना क्या है में एक स्ट्रिंग में प्रत्येक शब्द के पहले अक्षर को कैपिटल करना क्या है।सबसे अच्छा तरीका है एसक्यूएल सर्वर
उत्तर
से http://www.sql-server-helper.com/functions/initcap.aspx
CREATE FUNCTION [dbo].[InitCap] (@InputString varchar(4000))
RETURNS VARCHAR(4000)
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @OutputString VARCHAR(255)
SET @OutputString = LOWER(@InputString)
SET @Index = 1
WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char = SUBSTRING(@InputString, @Index, 1)
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
ELSE SUBSTRING(@InputString, @Index - 1, 1)
END
IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
BEGIN
IF @PrevChar != '''' OR UPPER(@Char) != 'S'
SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
END
SET @Index = @Index + 1
END
RETURN @OutputString
END
GO
वहाँ एक सरल/छोटे यहाँ ("अमान्य लंबाई पैरामीटर सही कार्य करने के लिए पारित कर दिया।" लेकिन अगर किसी भी पंक्ति रिक्त स्थान नहीं है काम नहीं करता है,) है:
एक मैं पिछले कुछ समय से उपयोग कर रहे हैं की एक विविधता है:
CREATE FUNCTION [widget].[properCase](@string varchar(8000)) RETURNS varchar(8000) AS
BEGIN
SET @string = LOWER(@string)
DECLARE @i INT
SET @i = ASCII('a')
WHILE @i <= ASCII('z')
BEGIN
SET @string = REPLACE(@string, ' ' + CHAR(@i), ' ' + CHAR(@i-32))
SET @i = @i + 1
END
SET @string = CHAR(ASCII(LEFT(@string, 1))-32) + RIGHT(@string, LEN(@string)-1)
RETURN @string
END
यदि आप चाहें तो रिक्त स्थान के अलावा अन्य वस्तुओं के बाद वर्णों को संभालने के लिए आप आसानी से संशोधित कर सकते हैं।
पाश का उपयोग किए बिना एक अन्य समाधान - पुनरावर्ती CTE
create function [dbo].InitCap (@value varchar(max))
returns varchar(max) as
begin
declare
@separator char(1) = ' ',
@result varchar(max) = '';
with r as (
select value, cast(null as varchar(max)) [x], cast('' as varchar(max)) [char], 0 [no] from (select rtrim(cast(@value as varchar(max))) [value]) as j
union all
select right(value, len(value)-case charindex(@separator, value) when 0 then len(value) else charindex(@separator, value) end) [value]
, left(r.[value], case charindex(@separator, r.value) when 0 then len(r.value) else abs(charindex(@separator, r.[value])-1) end) [x]
, left(r.[value], 1)
, [no] + 1 [no]
from r where value > '')
select @result = @result +
case
when ascii([char]) between 97 and 122
then stuff(x, 1, 1, char(ascii([char])-32))
else x
end + @separator
from r where x is not null;
set @result = rtrim(@result);
return @result;
end
यहाँ के साथ शुद्ध सेट-आधारित दृष्टिकोण सरल एक पंक्ति का कोड है।
select
LEFT(column, 1)+ lower(RIGHT(column, len(column)-1))
from [tablename]
नोट, प्रत्येक कॉलम को व्हाइटस्पेस या इस ब्रेक की छंटनी की जानी चाहिए। – JohnnyBizzle
इसके अलावा, आप पहले अक्षर पर ऊपरी नहीं कर रहे हैं। – JohnnyBizzle
यह केवल स्तंभ – slayernoah
आप इस कोशिश के बजाय
Select INITCAP(column_name) from table_name;
यह उल्लेख जिम्मेदार बताते हैं प्रविष्टियों का प्रथम अक्षर को बड़ा होगा चाहिए।
एक मेज-मान समारोह के रूप में:
CREATE FUNCTION dbo.InitCap(@v AS VARCHAR(MAX))
RETURNS TABLE
AS
RETURN
WITH a AS (
SELECT (
SELECT UPPER(LEFT(value, 1)) + LOWER(SUBSTRING(value, 2, LEN(value))) AS 'data()'
FROM string_split(@v, ' ')
FOR XML PATH (''), TYPE) ret)
SELECT CAST(a.ret AS varchar(MAX)) ret from a
GO
ध्यान दें कि string_split
की आवश्यकता है COMPATIBILITY_LEVEL
130.
BEGIN
DECLARE @string varchar(100) = 'asdsadsd asdad asd'
DECLARE @ResultString varchar(200) = ''
DECLARE @index int = 1
DECLARE @flag bit = 0
DECLARE @temp varchar(2) = ''
WHILE (@Index <LEN(@string)+1)
BEGIN
SET @temp = SUBSTRING(@string, @Index-1, 1)
--select @temp
IF @temp = ' ' OR @index = 1
BEGIN
SET @ResultString = @ResultString + UPPER(SUBSTRING(@string, @Index, 1))
END
ELSE
BEGIN
SET @ResultString = @ResultString + LOWER(SUBSTRING(@string, @Index, 1))
END
SET @Index = @Index+ 1--increase the index
END
SELECT @ResultString
अंत
SQL सर्वर में पहले वर्ण को कैपिटल करने का बहुत आसान तरीका –
- 1. सबसे अच्छा तरीका है
- 2. सबसे खूबसूरत तरीका एसक्यूएल सर्वर
- 3. Lucene और एसक्यूएल सर्वर - सबसे अच्छा अभ्यास
- 4. सबसे अच्छा तरीका है
- 5. सबसे अच्छा तरीका है
- 6. सबसे अच्छा तरीका है?
- 7. सबसे अच्छा तरीका है
- 8. सबसे अच्छा तरीका है
- 9. सबसे अच्छा तरीका है
- 10. सबसे अच्छा तरीका है
- 11. सबसे अच्छा तरीका है, .NET
- 12. सबसे अच्छा तरीका है NodeJS
- 13. एसक्यूएल प्रश्नों के साथ अच्छा पाने का सबसे अच्छा तरीका
- 14. सबसे अच्छा तरीका डेटाबेस
- 15. सबसे अच्छा तरीका है ASP.net
- 16. सबसे अच्छा तरीका है जावा
- 17. सबसे अच्छा तरीका है dict
- 18. सबसे अच्छा तरीका देता है
- 19. सबसे अच्छा तरीका है कुंजी
- 20. सबसे अच्छा तरीका/बाकी
- 21. सबसे अच्छा तरीका है उद्देश्य सी
- 22. क्या सबसे अच्छा तरीका है सब वर्कस्टेशन
- 23. सबसे अच्छा तरीका है catalina.bat फ़ाइल
- 24. एसक्यूएल लुकअप टेबल flatten/denormalize करने का सबसे अच्छा तरीका?
- 25. क्या डब्ल्यूएएमपी सर्वर सबसे अच्छा है?
- 26. कौन सा सबसे अच्छा कॉमेट सर्वर है?
- 27. एसक्यूएल सर्वर में रिकर्सन अच्छा है?
- 28. सर्वर-साइड इवेंट्स को ट्रिगर करने का सबसे अच्छा तरीका
- 29. सर्वर पर छवि पास करने का सबसे अच्छा तरीका?
- 30. SQL सर्वर रोलबैक स्क्रिप्ट बनाने का सबसे अच्छा तरीका?
इस एसक्यूएल सर्वर में किया जाना है? ऐसा कुछ नहीं है जो मैं डेटाबेस सर्वर से जोड़ता हूं, लेकिन फॉर्म सत्यापन या यहां तक कि एक दृश्य द्वारा किया गया कुछ भी। –
PostgreSQL उपयोगकर्ता: अद्यतन [तालिका] SET your_col = initcap (निचला (your_col)); यह एक पोस्टग्रे सवाल नहीं है, लेकिन यह पहले Google पर पहले दिखाई देता है। –