banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Hỏi về câu lệnh CHARINDEX với unicode trong SQL Server 2005  XML
  [Programming]   Hỏi về câu lệnh CHARINDEX với unicode trong SQL Server 2005 15/03/2009 04:08:05 (+0700) | #1 | 173225
anoperson
Member

[Minus]    0    [Plus]
Joined: 03/07/2008 18:06:53
Messages: 6
Offline
[Profile] [PM]
Chào các anh!

Em đang học lập trình cho SQL Server 2005

Khi em gõ đoạn code sau đây, thì kết quả không đúng như mong đợi, em đã thử nhiều cách để khác phục nhưng không sao gỡ được. Mong các anh chỉ giúp!

declare @bien nvarchar(30)
set @bien = 'Nguyễn'
SELECT CHARINDEX (@bien,Name)
FROM Patients


Bảng Patients của em như sau:

Code:
PID         Name           Tel            .......
                  1     Hoàng Văn Bình     0001
                  2     Lê Văn Minh       0002
                  3     Nguyễn Thị Hoa       .
                  4     Trần Lê Vũ           .
                  5     Bùi Văn Tình         .
                  6     Ngô Lê Trà
                  7     Dương Thị Thanh
                  8     Lưu Minh Sơn
                  9     Nguyễn Vinh Khánh
                 10     Phan Nam Văn
                  .     Ngô Tuyết Hương
                  .     Bùi Trần Thu Thảo
                  .     Lê Vũ Thiên Nam
                        Nguyễn Thị Bé
                        Trần Linh Lê
                        Hoàng Thị Thùy
                        Trần Minh Bính
                        Nguyễn Bình A
                        Hà Ngô Ái
                        Tăng Thu Thắm
                        Nguyễn Bình Minh
                        Phan Vi Na
                 23     Vu Viet Lam


Trường Name của em có kiểu là nvarchar(120)

Sau khi thực hiện thì kết quả nhận được là 23 dòng toàn số 0 ! (Điều này rõ ràng không đúng ví dụ với dòng thứ 3 Nguyễn Thị Hoa)

Vậy em mong các anh chỉ giúp để làm sao thu được kết quả đúng! (chú ý là em muốn từ "Nguyễn" phải được đặt trong biến @bien)
Em xin cảm ơn!
[Up] [Print Copy]
  [Question]   Re: Hỏi về câu lệnh CHARINDEX với unicode trong SQL Server 2005 24/03/2009 22:24:39 (+0700) | #2 | 174502
qtra004
Member

[Minus]    0    [Plus]
Joined: 19/04/2004 22:36:57
Messages: 298
Location: Kiwiland
Offline
[Profile] [PM]
Thử dùng PATINDEX xem sao?
Carpe diem quam minimum credula postero
[Up] [Print Copy]
  [Question]   Re: Hỏi về câu lệnh CHARINDEX với unicode trong SQL Server 2005 25/03/2009 03:57:14 (+0700) | #3 | 174552
Destiny3986
Member

[Minus]    0    [Plus]
Joined: 22/11/2007 23:54:52
Messages: 21
Offline
[Profile] [PM]
@anoperson: Mình thử đoạn code của bạn không có gì sai cả ( mình update lên sql server 2005 sp3 rồi) nếu bạn chưa update lên thì thêm chữ N phía trước 'Nguyễn', như thế này nè set @bien = N'Nguyễn'. Cái này mình đã test thử với 1 pc khác cài sql server 2005 sp1.
Máy mình thì 2 câu lệnh này:
select * from NhanVien
where TenNV like '%ương%'

select * from NhanVien
where TenNV like N'%ương%'

đều cho kết quả giống nhau, còn pc kia thì chỉ có câu lệnh dưới là ra kết quả câu lệnh trên không ra. Cái này cũng là do mình suy đoán thôi vì mình cũng đang học sql server. Nếu ai chuyên về cái này thì xem lai hộ xem có đúng như vậy không smilie. Cám ơn nhiều.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|