Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><strong>DDL:</strong></p> <p><em><strong>Company table:</em></strong></p> <pre><code>CompanyID INT NOT NULL PK CompanyName NVARCHAR(100) NOT NULL CompanyType TINYINT NOT NULL </code></pre> <p><em><strong>Position table:</em></strong></p> <pre><code>PositionID INT NOT NULL PK PositionName NVARCHAR(100) NOT NULL CompanyID INT NOT NULL WorkExperience TINYINT NOT NULL WorkType TINYINT NOT NULL CreateTime SMALLDATETIME UpdateTime SMALLDATETIME </code></pre> <p><strong>Index:</strong></p> <pre><code>CREATE NONCLUSTERED INDEX IX_Position ON Position (WorkExperience, WorkType, PositionName) INCLUDE (UpdateTime) </code></pre> <p><strong>SP:</strong></p> <pre><code>ALTER PROC [dbo].[spIndexJobList] @KeyWord NVARCHAR(50) , @WorkExperience TINYINT , @WorkType TINYINT , @CompanyType INT , @PageSize INT , @PageNumber INT AS BEGIN SET NOCOUNT ON; IF @PageNumber &gt; 0 BEGIN DECLARE @RowStart INT , @RowEnd INT , @SQL NVARCHAR(4000) , @ParamDefinition NVARCHAR(500) SELECT @SQL = N' SELECT c.CompanyID , c.CompanyName , p.PositionName , p.PositionID , p.UpdateTime , RowNumber = ROW_NUMBER() OVER (ORDER BY p.UpdateTime DESC) FROM dbo.Company c JOIN dbo.Position p ON c.CompanyID = p.CompanyID WHERE 1=1 ' + CASE WHEN @KeyWord != '' THEN ' AND PositionName LIKE @KeyWord' ELSE '' END + CASE WHEN @WorkExperience != 0 THEN ' AND p.WorkExperience = @WorkExperience' ELSE '' END + CASE WHEN @CompanyType != 0 THEN ' AND c.CompanyType = @CompanyType' ELSE '' END + CASE WHEN @WorkType != 0 THEN ' AND p.WorkType = @WorkType' ELSE '' END SET @ParamDefinition = '@KeyWord NVARCHAR(50), @WorkExperience INT, @WorkType INT, @CompanyType INT, @PageSize INT, @PageNumber INT' SELECT @PageNumber = @PageNumber - 1 , @RowStart = @PageSize * @PageNumber + 1 , @RowEnd = @RowStart + @PageSize - 1 , @SQL = ' WITH AllJobs AS (' + @SQL + ') SELECT * FROM AllJobs a CROSS JOIN ( SELECT TotalRows = Count(RowNumber) FROM AllJobs ) t WHERE a.RowNumber BETWEEN ' + STR(@RowStart) + ' AND ' + STR(@RowEnd) EXEC sys.sp_executesql @SQL, @ParamDefinition, @KeyWord, @WorkExperience, @WorkType, @CompanyType, @PageSize, @PageNumber END END </code></pre> <p><strong>Manual:</strong></p> <p><a href="http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data-type.aspx" rel="nofollow">http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data-type.aspx</a></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload