我想做这样的事情
DECLARE @ColumnName varchar(400) = 'name'
SELECT PATINDEX ('%b%', @ColumnName) AS Test FROM Table
我遇到的问题是PATINDEX
表达式正在使用文字"名称"作为源而不是列中的数据。有没有办法使用动态变量作为列本身?
答案 0 :(得分:0)
要做这样的事情,你需要使用动态SQL。
DECLARE @SQL VarChar(2000)
DECLARE @ColumnName VarChar(400) = 'name'
SET @SQL = 'SELECT PATINDEX(''%b'',' + @ColumnName + ') AS Test FROM Table'
EXEC (@SQL)
答案 1 :(得分:-1)
不清楚你在问什么。我的解释
SELECT PATINDEX('%b%',column_name)AS Test FROM information_schema.columns where table_name =' Table'