Có thể tôi hơi ngớ ngẩn nhưng khi kiểm tra truy vấn bên dưới mà tôi đã viết dựa trên một số truy vấn được cung cấp, điều này có vẻ hiệu quả hơn một chút [tùy thuộc vào việc lập chỉ mục]
Mã này hơi ngu ngốc, nhưng không phải có câu nói rằng nếu nó trông ngu ngốc nhưng nó hoạt động thì nó không ngu ngốc
Begin
Declare @text Varchar[30];
Set @text = 'qWeRtY kEyBoArD TEST&''"X';
Declare @1 Varchar[2]= ' a'
, @2 Varchar[2]= ' b'
, @3 Varchar[2]= ' c'
, @4 Varchar[2]= ' d'
, @5 Varchar[2]= ' e'
, @6 Varchar[2]= ' f'
, @7 Varchar[2]= ' g'
, @8 Varchar[2]= ' h'
, @9 Varchar[2]= ' i'
, @10 Varchar[2]= ' j'
, @11 Varchar[2]= ' k'
, @12 Varchar[2]= ' l'
, @13 Varchar[2]= ' m'
, @14 Varchar[2]= ' n'
, @15 Varchar[2]= ' o'
, @16 Varchar[2]= ' p'
, @17 Varchar[2]= ' q'
, @18 Varchar[2]= ' r'
, @19 Varchar[2]= ' s'
, @20 Varchar[2]= ' t'
, @21 Varchar[2]= ' u'
, @22 Varchar[2]= ' v'
, @23 Varchar[2]= ' w'
, @24 Varchar[2]= ' x'
, @25 Varchar[2]= ' y'
, @26 Varchar[2]= ' z';
Set @text=' '+@text
Select LTrim[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Replace[Lower[@text] ,
@1 , Upper[@1]] ,
@2 , Upper[@2]] ,
@3 , Upper[@3]] ,
@4 , Upper[@4]] ,
@5 , Upper[@5]] ,
@6 , Upper[@6]] ,
@7 , Upper[@7]] ,
@8 , Upper[@8]] ,
@9 , Upper[@9]] ,
@10 , Upper[@10]] ,
@11 , Upper[@11]] ,
@12 , Upper[@12]] ,
@13 , Upper[@13]] ,
@14 , Upper[@14]] ,
@15 , Upper[@15]] ,
@16 , Upper[@16]] ,
@17 , Upper[@17]] ,
@18 , Upper[@18]] ,
@19 , Upper[@19]] ,
@20 , Upper[@20]] ,
@21 , Upper[@21]] ,
@22 , Upper[@22]] , @23 ,
Upper[@23]] , @24 , Upper[@24]] ,
@25 , Upper[@25]] , @26 , Upper[@26]]];
end
Định nghĩa phương thức Ucfirst[]
DROP FUNCTION IF EXISTS ucfirst; DELIMITER $$ CREATE FUNCTION ucfirst[str_value VARCHAR[5000]] RETURNS VARCHAR[5000] DETERMINISTIC BEGIN RETURN CONCAT[UCASE[LEFT[str_value, 1]],SUBSTRING[str_value, 2]]; END $$
Trong một chuỗi PostgreSQL, bạn cần đặt chữ cái đầu tiên của mỗi từ thành chữ hoa và các chữ cái còn lại là chữ thường
Thí dụ
Cơ sở dữ liệu của chúng tôi có một bảng tên là student
với dữ liệu trong hai cột, id và full_name
Hãy thay đổi cách viết hoa tên đầy đủ của sinh viên bằng cách chuyển đổi chuỗi này để chỉ những chữ cái đầu tiên của họ và tên được viết hoa – giống như chúng ta thường viết chúng
Dung dịch
Chúng tôi sẽ sử dụng chức năng INITCAP[]
. Đây là truy vấn bạn sẽ viết
SELECT INITCAP [full_name] AS new_full_name FROM student;
Đây là kết quả
new_full_nameAnne WilliamsAlice BrownGary JacksonThảo luận
Sử dụng hàm INITCAP[]
để chuyển đổi một chuỗi thành một chuỗi mới viết hoa chữ cái đầu tiên của mỗi từ. Tất cả các chữ cái khác sẽ là chữ thường. Hàm này nhận một tham số là một chuỗi và thay đổi cách viết hoa cho mỗi từ như mô tả
Trong ví dụ của chúng tôi, tên đầy đủ Anne Williams ban đầu được lưu trữ trong cột
DROP FUNCTION IF EXISTS ucfirst; DELIMITER $$ CREATE FUNCTION ucfirst[str_value VARCHAR[5000]] RETURNS VARCHAR[5000] DETERMINISTIC BEGIN RETURN CONCAT[UCASE[LEFT[str_value, 1]],SUBSTRING[str_value, 2]]; END $$1 là 'ANNE WILLIAMS';
MySQL UCASE[] chuyển đổi tất cả các ký tự của chuỗi thành chữ hoa. UCASE[] là từ đồng nghĩa của UPPER[]
cú pháp
UCASE [str]
Hàm trên là một từ đồng nghĩa với UPPER[]
Sơ đồ cú pháp
Phiên bản MySQL. 5. 6
Trình chiếu video
Trình duyệt của bạn không hỗ trợ video HTML5
Thí dụ. Hàm UCASE[] của MySQL
Câu lệnh MySQL sau trả về tất cả các ký tự trong chuỗi thành chữ hoa
Mã số
SELECT UCASE['myteststring'];
Đầu ra mẫu
mysql> SELECT UCASE['myteststring']; +-----------------------+ | UCASE['myteststring'] | +-----------------------+ | MYTESTSTRING | +-----------------------+ 1 row in set [0.01 sec]
mysql. Viết hoa chữ cái đầu tiên của một chuỗi
Chúng tôi có một bảng gọi là test1 với các bản ghi sau
mysql> SELECT * FROM test1;
+-----------+ | test_char | +-----------+ | abcd | | WxyZ | | scott | | ROBIN | +-----------+ 4 rows in set [0.00 sec]
Bây giờ chúng tôi muốn cập nhật dữ liệu trên trong đó ký tự đầu tiên sẽ ở dạng chữ hoa i. e. 'abcd' sẽ là 'Abcd', 'WxyZ' sẽ là 'WxyZ', v.v. Xem câu lệnh MySQL sau