請有人可以幫助我瞭解如何使以下函數正常工作。我找到了一個可以正常工作的northwind示例,但是通過使用我需要的語法對其進行了更改。當選中所有行時,我會收到一個錯誤消息,指出在期望條件的上下文中指定了非布爾類型的表達式,即'effec'附近。我需要修改了聲明如下:exec sp_executesql語句會導致錯誤「在預期條件的上下文中指定的非布爾類型的表達式」
select max(person_sid) from dim_person
where [Effective_To] <='2015-10-01'
group by person_id_number
declare @sql nvarchar(50), @dt datetime;
set @dt = '2015-10-01';
set @sql = N'SELECT max(person_sid) FROM dim_person WHERE effective_to <= @date';
exec sp_executesql @sql, N'@date datetime',@dt;
那麼,當然,如果你只是選擇最後一行,它會說「@sql必須聲明」 - 它被聲明在上面幾行。如果你只是選擇了最初的'select ....'三行,會發生什麼?它運行正常嗎? – Jamiec
你好,是的,一切工作正常,我得到輸入的列中的數據,它只是最後一個執行最後,似乎並沒有與其他一切工作。 – Ryan
在動態SQL字符串中計數50個字符。請參閱第45-50個字符是'effec' – Jamiec