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 505925
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T06:38:54+00:00 2026-05-13T06:38:54+00:00

CREATE TABLE exmp_test ( id int, v1 int, v2 int, v3 int, v4 int

  • 0
CREATE TABLE exmp_test
(
id int, 
v1 int,
v2 int,
v3 int,
v4 int
)

SELECT * FROM exmp_test

id  v1  v2  v3  v4
1   2   4   6   7
1   4   77  3   8

I want to add the value of the [id] column to (whichever has least value for v1 ,v2 ,v3 ,v4) for each row.

As an example, for the first row, the [id] value should be add to v1 (because it has the lowest value). For the second row, the [id] value should be add to v3 (because it has the lowest value).

How would I write the SQL to do this?

  • 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-13T06:38:54+00:00Added an answer on May 13, 2026 at 6:38 am

    You could normalize the table in a CTE (common table expression), and then select the row with the minimum value. Based on the comment below your question, I’ve added priority for v1.

    ;with Normal as (
        select id, v1 as value, 1 as prio from YourTable
        union all select id, v2, 2 as prio from YourTable
        union all select id, v3, 3 as prio from YourTable
        union all select id, v4, 4 as prio from YourTable
    )
    select top 1 id, value
    from Normal
    where value = (
        select min(value) from Normal
    )
    order by prio
    

    After re-reading your question, here’s a way to look at the lowest value per row and add the id field to that:

    update t1
    set v1 = v1 + case when mincol = 1 then id else 0 end
    ,   v2 = v2 + case when mincol = 2 then id else 0 end
    ,   v3 = v3 + case when mincol = 3 then id else 0 end
    ,   v4 = v4 + case when mincol = 4 then id else 0 end
    from (
        select id, v1, v2, v3, v4,
            case 
              when v1 <= v2 and v1 <= v3 and v1 <= v4 then 1
              when v2 <= v3 and v2 <= v4 then 2
              when v3 <= v4 then 3
              else 4
             end as mincol
        from YourTable
    ) t1
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I know the statement: create table xyz_new as select * from xyz; Which copies
I create a table like CREATE TABLE #tab(ID INT,Value FLOAT) inside a loop (
create table person ( name varchar(15), attr1 varchar(15), attr2 varchar(1), attr3 char(1), attr4 int
Given a table structure like this: CREATE TABLE `user` ( `id` int(10) unsigned NOT
Here's my table: CREATE TABLE `alums_alumphoto` ( `id` int(11) NOT NULL auto_increment, `alum_id` int(11)
The following T/SQL:- create table #temp(foo varchar(10)) insert into #temp select '' insert into
Imagine the following tables: create table boxes( id int, name text, ...); create table
Consider the following table: create table temp ( name int, a int, b int
I create a table with name temp1 - It has a primary key with
This works: CREATE TABLE shoutbox_shout ( shout_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

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.