0
declare @CustField6 nvarchar(10)
declare @sample nvarchar(10)
set @CustField6 = 'sf'

select customer_id  from csu_customer_policy
    inner join csu_policy on csu_policy.policy_number = csu_customer_policy.policy_number
    and csu_policy.data_source = csu_customer_policy.data_source
    where csu_policy.vehicle_no like  + '''' + @CustField6 + '%''' and csu_customer_policy.delete_status = 0 and csu_customer_policy.site_id = 1

csu_policy.vehicle_noで始まるすべてのレコードが欲しいsf%

sfを直接指定すると @CustField6、すべてのレコードが返されますが、これを使用して実行する@CustField6と、エラーは発生しませんが、レコードは取得されません。このコードを印刷して、クエリが正しくフレーム化されているかどうかを確認し、機能しています大丈夫。しかし、なぜレコードを取得していないのかわかりませんか?

4

6 に答える 6

2

構文が正しくありません。そのはず:

where csu_policy.vehicle_no like @CustField6 + '%'

@CustField6が に等しいと仮定するとsf、これは

where csu_policy.vehicle_no like 'sf%'

これを行う場合:

where csu_policy.vehicle_no like ''''  + @CustField6 + '%''''

次に、実際にこれを行っています:

where csu_policy.vehicle_no like '''sf%'''

つまり、一致するレコードを見つけているということです。つまり、'sf%'引用符で始まり、次に任意のレコード、次に引用符でsf終わるレコードです。

于 2013-06-21T04:04:43.087 に答える
1

条件を次のように変更します。

WHERE csu_policy.vehicle_no LIKE @CustField6 + '%' 

デモ: SQL フィドル

于 2013-06-21T04:09:28.897 に答える
0

以下のように一重引用符を使用してください。

declare @CustField6 nvarchar(10)
declare @sample nvarchar(10)
set @CustField6 = 'sf'

select customer_id  from csu_customer_policy
    inner join csu_policy on csu_policy.policy_number = csu_customer_policy.policy_number
    and csu_policy.data_source = csu_customer_policy.data_source
    where csu_policy.vehicle_no like  '' + @CustField6 + '%' and csu_customer_policy.delete_status = 0 and csu_customer_policy.site_id = 1
于 2013-06-21T04:33:32.970 に答える
0

あなたのクエリの問題は、数が多く'+where 条件にあることだと思いますwhere csu_policy.data_source like @custField6 + '%':csu_policy.vehicle_no like + '''' + @CustField6 + '%'''

declare @CustField6 nvarchar(10) 
declare @sample nvarchar(10) 
set @CustField6 = 'sf'

select customer_id 
from csu_customer_policy 
inner join csu_policy on csu_policy.policy_number = csu_customer_policy.policy_number 
      and csu_policy.data_source = csu_customer_policy.data_source 
where csu_policy.vehicle_no like @CustField6 + '%' 
and csu_customer_policy.delete_status = 0 and csu_customer_policy.site_id = 1
于 2013-06-21T04:04:58.073 に答える
0

解除してみる +

from
 csu_policy.vehicle_no like + '''' + @CustField6 + '%'''

To
 csu_policy.vehicle_no like  ''''+ @CustField6 + '%'''
于 2013-06-21T04:07:39.700 に答える