Tôi đã viết này để tìm kiếm một chuỗi trong sql từ bất kỳ cột nào trong một bảng nhưng trong một số trường hợp, nó phản hồi bất thường. Ví dụ được đưa ra ở đây.tìm kiếm một chuỗi trong sql từ bất kỳ cột nào trong một bảng
declare @tablepay table
(
payno varchar(500),
lastmodified nvarchar(500)
)
declare @columnname table
(
[rownumber] INT IDENTITY,
colname varchar(500)
)
insert into @tablepay (payno, lastmodified)
select 'PAY/2014','abcd'
insert into @columnname(colname)
select TN.N.value('local-name(.)', 'sysname') as ColumnName
from
(select TV.*
from (select 1) as D(N)
outer apply (select top(0) * from @tablepay) as TV for xml path(''), elements xsinil, type) as TX(X)
cross apply TX.X.nodes('*') as TN(N)
DECLARE @count INT
DECLARE @begincount INT
DECLARE @clname as VARCHAR(50)='';
SET @begincount = 1
select @count = count(*) from @columnname
declare @tlname varchar(50)
set @tlname = '@tablepay'
WHILE @begincount <= @count
BEGIN
set @clname = (select colname from @columnname where rownumber = @begincount)
declare @text as varchar(100)
select * from @tablepay where @clname like '%f%'
SET @begincount = @begincount + 1
END
Vui lòng mở rộng 'trả lời bất thường' và vui lòng thêm thẻ RDBMS thích hợp - có phải là SQL Server không? –
Có đây là SQL Server, ở đây khi tôi đưa ra như '% f%' nó trả về một hàng. Nhưng trong hàng đó không có 'f' –
Mã bạn đã đăng không có ý nghĩa. Bạn chèn một hàng vào '@ tablepay', sau đó bạn chọn từ nó _using một mệnh đề where không có liên quan đến các bản ghi trong bảng_. Trong ngắn hạn mã của bạn làm cho hoàn toàn không có ý nghĩa. –