我願做這樣的事情的SQL Server:使用動態列名在PATINDEX()表達
DECLARE @ColumnName varchar(400) = 'name'
SELECT PATINDEX ('%b%', @ColumnName) AS Test FROM Table
我遇到的是,PATINDEX
表達式使用字面「名稱」問題作爲來源而不是列中的數據。有沒有辦法使用動態變量作爲列本身?
我願做這樣的事情的SQL Server:使用動態列名在PATINDEX()表達
DECLARE @ColumnName varchar(400) = 'name'
SELECT PATINDEX ('%b%', @ColumnName) AS Test FROM Table
我遇到的是,PATINDEX
表達式使用字面「名稱」問題作爲來源而不是列中的數據。有沒有辦法使用動態變量作爲列本身?
不清楚你在問什麼。我的解釋
SELECT PATINDEX(「%B%」,列名)作爲試驗information_schema.columns在表格=「表」
爲了做這樣的事情,你需要使用動態SQL。
DECLARE @SQL VarChar(2000)
DECLARE @ColumnName VarChar(400) = 'name'
SET @SQL = 'SELECT PATINDEX(''%b'',' + @ColumnName + ') AS Test FROM Table'
EXEC (@SQL)
提到的問題沒有關係啊嗯謝謝你,我在做一些動態SQL,但是我的報價方案不正確。再次感謝! – 2015-01-27 01:11:16
如果原始查詢有問題我認爲包裝(完全是原始查詢)並使用動態sql執行它也會有問題 – jfun 2015-01-27 01:11:17
這個答案與問題 – jfun 2015-01-27 01:08:06