Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 341463
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T10:42:41+00:00 2026-05-12T10:42:41+00:00

I have a table that has records with a structure similar to this.. ID

  • 0

I have a table that has records with a structure similar to this..

ID RoleID
1 NULL
2 15
3 16

I wrote a where clause to get records like the following

SELECT * from TableX 
WHERE (RoleID = 2 OR RoleID IS NULL)

This gets me the record of “1,NULL”

But if i query

SELECT * from TableX 
WHERE (RoleID = 15 OR RoleID IS NULL)

I get back “1,NULL” and “2,15”.

Does anyone know how to structure a select to give me only one record? I only want “2,15” if 15 was passed and “1,NULL” if there are no matches.

Note, the actual query has MANY more where clauses to it, so nesting itself inside itself would be a very big query.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T10:42:41+00:00Added an answer on May 12, 2026 at 10:42 am

    How about SELECT TOP 1 with ORDER BY RoleID DESC

    Here is a working example.

    declare @mytable table
    (
        ID int null,
        RoleID int null
    )
    insert @mytable values
    (1, null),
    (2, 15),
    (3, 1)
    
    select TOP 1 * 
    from @mytable 
    WHERE (RoleID = 2 OR RoleID IS NULL)
    order by RoleID desc
    
    
    select top 1 * from @mytable 
    WHERE (RoleID = 15 OR RoleID IS NULL)
    order by RoleID desc
    

    Edit (edited based on comments received)
    Note that the Insert statement works only for SQL Server 2008. For versions prior to 2008, you will have to break it into invidual inserts.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

So I have a database that has a structure something like this: [user_table] user_id,
I have a database table that has a structure like the one shown below:
I have one table that has sales records and another table that has additional
I have a table that has millions of records and we are looking at
I have a table within my database that has many records, some records share
I have a table that has reached nearly 3 million records. While I appreciate
I have a table by the following structure and records, All i want to
I have a table in SQL server that has the normal tree structure of
I have a table that stores records and already has primary key. Table A
Background I have a dimension table that has a single record for each day.

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.