|
Posted by othellomy on 01/17/07 11:11
Hi,
ALTER PROCEDURE Rpt_HARLegacyJobSp(@JobNo NVARCHAR(10))
AS
select @jobNo =
substring(@jobNo,patindex('%[1-9]%',@jobNo),datalength(@jobNo))
might give you jobNo with leading zero removed. However, I would
recommend not supplying parameter with leading zero added if possible
(therefore you wont need this code).
red vertigo wrote:
> HI All,
> Can't quite get my head aorund this problem. My knowledge or more
> importantly my experience of using T-SQL is small and as a consequence
> my stored procedures are basic.
>
> My current project involves simple stored_procs searching/retrieving
> Legacy data. Key problem is that in the case of the 'Job' table, the
> 'Job Number' is an alphanumeric value. Here is the current stored
> procedure:
>
> ALTER PROCEDURE Rpt_HARLegacyJobSp(
>
> @JobNo NVARCHAR(10))
>
> AS
>
>
> SELECT IPJOBM_SID, --Start IPJOBM
> JOB_NUMBER_JBMSTR,
> CONTRACT_JOB_JBMSTR,
> RECORD_TYPE_JBMSTR,
> ...
> TAX_EXEMPT_1_JBMSTR,
> TAX_EXEMPT_2_JBMSTR, --Finish IPJOBM
> PPJOBD_SID, --Start PPJOBD
> RELEASE_JOBDET,
> ...
> CATALOGUE_NUMBER_JOBDET,
> ITEM_NUMBER_JOBDET,
> SHIPPED_COMPLETE_JOBDET,
> ISSUED_COMPLETE_JOBDET,
> QUANTITY_RETURNED_JOBDET --Finish HARLegacy_PPJOBD
>
> FROM HARLegacy_IPJOBM
> JOIN HARLegacy_PPJOBD
> ON HARLegacy_PPJOBD.RELEASE_JOBDET = HARLegacy_IPJOBM.JOB_NUMBER_JBMSTR
> WHERE HARLegacy_IPJOBM.JOB_NUMBER_JBMSTR LIKE '%' + @JobNo + '%'
>
> Job Number values in the table can either begin with a Letter e.g.
> 'H3887' or a Number '13016'
>
> The problem here is that when a JobNumber value e.g. '001887' with
> a/more than one proceeding zero(s) is passed to the stored procedure no
> value is returned. I am assuming this to mean that the current
> WHERE....LIKE statement interprets this example value as '0'? As there
> are no '0' values then no value is returned?
>
> I have read about the SUBSTRING function in Books Online which I kind
> of understand but do not exactly know if this functions is suitable for
> this problem?
>
> What I want the stored procedure to do when executing is
>
> 1) Read in the value of @JobNo and identify n number of leading zeros
> (according to the Legacy data this can be 1 or more) . If the JobNumber
> begins with an alphabetic e.g. H3887 then it will just search and
> return all 'H' values.
> 2) Perform search on/from first whole number e.g. '1887'
>
> This means that as I am using the LIKE command it would be acceptable
> for this search to produce variations on '001887' e.g. 0014887 etc.
>
> Please can anyone provide me with some guidance on how I can achieve
> this, which at first glance, seems a baffling feature?!?
>
> Any advice would be greatly appreciated,
>
> Many Thanks
>
> rohan
Navigation:
[Reply to this message]
|