Я написал это для поиска строки в sql из любого столбца таблицы, но в некоторых случаях он реагирует ненормально. Пример приведен здесь.поиск строки в sql из любого столбца в таблице
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
Пожалуйста, добавьте соответствующий тег RDBMS - это SQL Server? –
Да, это SQL Server, здесь, когда я даю как «% f%», он возвращает строку. Но в этой строке нет «f» –
Код, который вы опубликовали, не имеет смысла. Вы вставляете одну строку в '@ tablepay', затем вы выбираете из нее _ использование предложения where, которое не имеет отношения к записям в таблице_. Короче говоря, ваш код не имеет абсолютно никакого смысла. –