It was suggested on Meta for [July 2015 Community Challenge](http://meta.codereview.stackexchange.com/a/5422/42632) to make a bot that can find questions with bad titles. I wrote this query to help others find examples to help them make write their code. 

I made it a point to document as I wrote it so that someone who is not as familiar with SQL could still make changes to is easily. Is there room for improvements?

[Here is the query on SEDE](http://data.stackexchange.com/codereview/query/324894/qpaystaxes-bad-questions-query)

    DECLARE @Question INT = (SELECT Id FROM PostTypes WHERE Name = 'Question');
    DECLARE @Answer INT = (SELECT Id FROM PostTypes WHERE Name = 'Answer');
    
    SELECT 
    /* Uncomment below if you want to limit the results */
    /* TOP 100 */
        Posts.Id AS [Post Link]
      /* only for sanity check in case the filter is removed from WHERE clause */
      , CASE 
          WHEN Posts.PostTypeId = @Question THEN 'Question'
          WHEN Posts.PostTypeId = @Answer THEN 'Answer'
          ELSE 'Other' END 
          AS [Post Type]
      , Posts.Score
      , Posts.CreationDate
      , Users.Id AS [User Link]
      , Users.Reputation
    FROM Posts 
    INNER JOIN Users
      ON Posts.OwnerUserId = Users.Id
    WHERE
      /* Filter out non-question posts */
      Posts.PostTypeId = @Question
      
      /* Generic title */
      AND (
        Posts.Title LIKE '%please%' OR
        Posts.Title LIKE '%review%' OR
        Posts.Title LIKE '%improve%' OR
        Posts.Title LIKE '%better%' OR
        Posts.Title LIKE '%how to%'OR
        Posts.Title LIKE '%how can i%' OR
        Posts.Title LIKE '%how do i%'
      )
      
      /* Post not closed yet */
      AND Posts.ClosedDate IS NULL
      
      /* Question doesn't have positive score */
      /* AND Posts.Score <= 0 */
      
      /* User has low reputation - Un-comment to limit query further */
      AND Users.Reputation <= 500
      
    ORDER BY
    
      /* Lowest scores first - Change to DESC if you want Highest first */
      Posts.Score ASC
      
      /* Newest first - Change to ASC if you want oldest first */
      , Posts.CreationDate DESC