Why is that? You don't still believe that stored procedures always perform 
better do ya? ;)

----- Original Message ----
From: Teddy R Payne <[EMAIL PROTECTED]>
To: [email protected]
Sent: Tuesday, June 5, 2007 2:09:40 PM
Subject: Re: [ACFUG Discuss] OT: SQL help

Message

 
 


You use it in an adhoc query in query analyzer or SSMA.  I have not 
tried it as an ad hoc query in CF as I myself tend not to use cfquery wherever 
I 
can.

 

Teddy


  ----- Original Message ----- 

  From: 
  Paul 
  Morton 

  To: [email protected] 

  Sent: Tuesday, June 05, 2007 1:58 
PM

  Subject: RE: [ACFUG Discuss] OT: SQL 
  help

  


  Without creating a SP, can I use this in a 
  select statement?

  
    

    -----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
    On Behalf Of Teddy R Payne
Sent: Tuesday, June 05, 2007 
    11:45 AM
To: [email protected]
Subject: 
    Re: [ACFUG Discuss] OT: SQL help



    Paul,

    There is already an open source function in SQL Server to do this for 
    you:

     

    http://www.4guysfromrolla.com/webtech/031004-1.shtml

     

    They explain how to put it together.  

     

    Here is the function creation for how I put it together from their 
    explanation:

     

    if exists (select * from dbo.sysobjects where id = 
    object_id(N'[dbo].[Split]') and xtype in (N'FN', N'IF', N'TF'))
drop 
    function [dbo].[Split]
GO

     

    SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

     

    
CREATE  FUNCTION dbo.Split
(
 @List 
    nvarchar(4000),
 @SplitOn nvarchar(5)
)  

     

    RETURNS @RtnValue table 
(
  
 Id int 
    identity(1,1),
 Value nvarchar(250)
) 

     

    AS  

     

    BEGIN

     

     While 
    (Charindex(@SplitOn,@List)>0)
 Begin
 
  Insert 
    Into 
   @RtnValue
    
    (
    value
   )
  Select
     
      Value = 
    ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
 
     
     Set @List = 
    Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
 End
 
 Insert 
    Into 
  @RtnValue 
    
  (
   Value
  )
 Select 
    
  Value = ltrim(rtrim(@List))
 
 Return

     

    END

     

    GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 

GO

     

    It is implemented as such:

     

    CREATE PROCEDURE getEmployeesByID(@employeeList 
    nvarchar(1000))
AS

     

    Select 
   employeeId, -- integer (int)
   
    FirstName, 
   LastName 
from #myTable
Where 
    
   employeeId IN (Select convert(int,Value) from 
    dbo.Split(@employeeList,','))

     

     

    Cheers,

    Teddy

     

     

    
      ----- Original Message ----- 

      From: 
      Paul 
      Morton 

      To: [email protected] 

      Sent: Tuesday, June 05, 2007 1:36 
      PM

      Subject: [ACFUG Discuss] OT: SQL 
      help

      


      I apologize for the 
      OT post, but I'm getting frustrated.

       

      I am attempting 
      to use a UDF to split a varchar (comma delimited list of ints) in an 
      IN clause in a SQL statement, and I'm not able to get the SQL statement 
to 
      pass a Table field to the UDF.

       

      I'm hoping someone 
      sees a glaring error, or can tell me I can't do this.

      MS SQL 
      2000

      ________________________________________________________________

      CREATE FUNCTION 
      dbo.Split
 (
  @List 
      nvarchar(2000),
  @SplitOn nvarchar(5)
 )  
      
 RETURNS @RtnValue table 
      
 (
  
  Id int 
      identity(1,1),
  Value nvarchar(100)
 ) 
      
 AS  
 BEGIN 
  While 
      (Charindex(@SplitOn,@List)>0)
  Begin

       

         Insert Into @RtnValue 
      (value)
   Select 
    Value = 
      ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))

       

         Set 
      @List = 
      Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
  End

       

        Insert 
      Into @RtnValue (Value)
  Select Value = 
      ltrim(rtrim(@List))
 
  Return
 END

      
________________________________________________________________________________

      
SQL Statement

      SELECT     
      *
FROM         dbo.ORDER_ITEMS 
      oi LEFT OUTER 
      JOIN
                      
      dbo.AP_translation tr ON tr.option_id IN
(select convert(int,Value) 
      from dbo.Split(oi.OptionIDs, ','))
WHERE     
      (oi.Order_ID = 12387)

      
_____________________________________________________________________________

      Error 
      received:

      Server: Msg 170, 
      Level 15, State 1, Line 4
Line 4: Incorrect syntax near 
      '.'.

       

       

      OptionIDs is a 
      varchar(255) field with a comma delimited list of 
      integers.

      It doesn't like the 
      oi.OptionIDs.  If I put in a list like '0,1,2' in it's place, the 
      query works.

       

      Can I not pass a 
      field into a UDF?

      Is there another way 
      to skin this cat?

       

       

      Paul

------------------------------------------------------------- 
      
Annual Sponsor - Figleaf Software 

To unsubscribe 
      from this list, manage your profile @ 
http://www.acfug.org?fa=login.edituserform 
      

For more info, see http://www.acfug.org/mailinglists 
      
Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
      
List hosted by FusionLink 
      
------------------------------------------------------------- 
    
------------------------------------------------------------- 
    
Annual Sponsor - Figleaf Software 

To unsubscribe 
    from this list, manage your profile @ 
http://www.acfug.org?fa=login.edituserform 
    

For more info, see http://www.acfug.org/mailinglists 
    
Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
    
List hosted by FusionLink 
    
------------------------------------------------------------- 
  
------------------------------------------------------------- 
  
Annual Sponsor - Figleaf Software 

To unsubscribe from 
  this list, manage your profile @ 
http://www.acfug.org?fa=login.edituserform 
  

For more info, see http://www.acfug.org/mailinglists 
  
Archive @ http://www.mail-archive.com/discussion%40acfug.org/ 
  
List hosted by FusionLink 
  
------------------------------------------------------------- 

-------------------------------------------------------------


Annual Sponsor - Figleaf Software





To unsubscribe from this list, manage your profile @ 


http://www.acfug.org?fa=login.edituserform





For more info, see http://www.acfug.org/mailinglists


Archive @ http://www.mail-archive.com/discussion%40acfug.org/


List hosted by FusionLink


-------------------------------------------------------------








-------------------------------------------------------------
Annual Sponsor FigLeaf Software - http://www.figleaf.com

To unsubscribe from this list, manage your profile @ 
http://www.acfug.org?fa=login.edituserform

For more info, see http://www.acfug.org/mailinglists
Archive @ http://www.mail-archive.com/discussion%40acfug.org/
List hosted by http://www.fusionlink.com
-------------------------------------------------------------

Reply via email to