TABLE_A chứa một cột NVARCHAR(200) NOT NULL
Name
. lĩnh vực của nó được tạo thành từ tên công ty tiếp theo là một dấu gạch dưới và kết thúc bằng một id công ty, ví dụ .:tham gia hai bảng trên đối số1 kết thúc bằng đối số2
MYCOMPANY_102
PK table_b là một cột INT NOT NULL
gọi CompanyID
và sẽ chứa ví dụ 102
Truy vấn của tôi, để tham gia bên trong hai bảng này, trong đó một đối số kết thúc bằng một bảng khác, không mang lại kết quả nào. Trong trường hợp bất cứ ai thắc mắc rõ ràng: có, có các hồ sơ phù hợp.
SELECT * FROM [SERVER1].[DB1].[dbo].[TABLE_A] a
INNER JOIN [SERVER2].[DB2].[dbo].[TABLE_B] b
ON a.Name LIKE '%[_]' + CONVERT(NVARCHAR, b.CompanyID)
Mọi chỉnh sửa và hiểu rõ tại sao truy vấn của tôi không thể hoạt động, được hoan nghênh nhất.
EDIT: tên công ty có thể chứa chữ số và/hoặc gạch dưới ở bất cứ đâu, tôi CHỈ tìm cách khóa vào lần xuất hiện cuối cùng của dấu gạch dưới, theo sau là một int tự nhiên tùy ý. Có thể là _1, có thể là _205952 cho tất cả những gì tôi biết. Có NO số không hàng đầu trong hậu tố chữ số
Tại sao không 'LIKE'% _ '+ CONVERT (NVARCHAR, b.CompanyID) '? Tôi không hiểu việc sử dụng '[]' (mặc dù tôi chưa bao giờ thực hiện một lần tham gia :)) – webnoob
dấu gạch dưới là chữ, không phải là ký tự đại diện –
không có dấu ngoặc vuông, dấu gạch dưới là ký tự đại diện một char, ký hiệu phần trăm là ký tự đại diện đa char. Điều đó sẽ không hiệu quả. Tôi đã thực hiện gạch dưới bản thân mình để cho phép các tên công ty có thể, và của chính họ, kết thúc bằng chữ số. –