DROP PROCEDURE  IF EXISTS uspGetOsszefuggoSzakGyakosCsoportok 
GO

CREATE PROCEDURE uspGetOsszefuggoSzakGyakosCsoportok
   @pOsszefuggoSzakGyakTipus INT
  ,@pOktNevKatTipus INT
  ,@pTanevId INT
AS
BEGIN
  SET NOCOUNT ON;

  SELECT CASE 
      WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%'
        THEN CAST(LEFT(osztalyCsoport.C_NEV, 9) AS INT)
      ELSE 2147483647
      END AS NumberOrder
    ,CASE 
      WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0'
          AND '9'
        AND osztalyCsoport.C_NEV LIKE '%[^0-9]%'
        THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1), 9) AS INT)
      ELSE 2147483647
      END AS NumberAndTextOrder
    ,csoport.ID AS ID
    ,osztalyCsoport.C_NEV AS Nev
  FROM T_CSOPORT_OSSZES csoport
  INNER JOIN T_OSZTALYCSOPORT_OSSZES osztalyCsoport ON osztalyCsoport.ID = csoport.ID
    AND osztalyCsoport.C_FELADATKATEGORIAID = @pOktNevKatTipus
    AND osztalyCsoport.TOROLT = 'F'
  WHERE csoport.C_TIPUSA = @pOsszefuggoSzakGyakTipus
    AND csoport.TOROLT = 'F'
    AND csoport.C_ALTANEVID = @pTanevId
  ORDER BY NumberOrder ASC
    ,NumberAndTextOrder ASC
    ,osztalyCsoport.C_NEV ASC
END
GO


