How to give default value to a column in a table if there's no data in it?

alter table add column with default value in sql server
alter table add column with default value in oracle
sql add column with default value in select
alter table add column with default value in mysql
set default value in sql select query
sql add column with value
sql insert default value if null
sql default value if null

For eg: We have a table Person with columns Name, Age.

If the table Person is empty, I want to have default value as "no person" in Name column and 0 in age column.

How do we do that?

I tried IFNULL but it doesn't give any default value. It shows the table as empty only.


Use a union with a query that checks the number of rows in the table:

SELECT name, age
FROM Persons
UNION ALL
SELECT 'no person', 0
FROM DUAL
WHERE (SELECT COUNT(*) FROM Persons) = 0

DUAL is a dummy table name that can be used in queries that don't need to refer to a real table.

Specify Default Values for Columns, The DEFAULT constraint is used to provide a default value for a column. SQL sets a DEFAULT value for the "City" column when the "Persons" table is created:. If the results has no value, then I have to provide a default saying no name, 0 for age. – neil Dec 5 '18 at 17:57 add a comment | 4 Answers 4


use COALESCE

select case when name<>''
then COALESCE (name,'No name') else 'No name' end,
 COALESCE (age,0) from Person 

SQL DEFAULT Constraint, The DEFAULT constraint inserts a default value into a column of a table when you insert There are two ways to create DEFAULT constraints for columns: You can assign a DEFAULT constraint to a column in the CREATE TABLE statement  In Object Explorer, right-click the table with columns for which you want to change the scale and click Design. Select the column for which you want to specify a default value. In the Column Properties tab, enter the new default value in the Default Value or Binding property. Note.


Why do you need that kind of output from the database? I think you should do that from the language you use to process the data the Query provides you. I think the suggested solutions are wrong cause they just give an empty set if the table is empty

SQL DEFAULT Constraint, Please also “add in your blog” the way of adding a new column in sql table with a default value as the value of an existing column. Or if it is  DEFAULT Values Using Sequences In Oracle 12c, it is now possible to specify the CURRVAL and NEXTVAL sequence pseudocolumns as the default values for a column. You should also consider using Identity columns for this purpose. In the following example you can see the effect of specifying a sequence as the default value for a column.


You wouldn't do this in the database, you'd do it in the front end.

If you absolutely insist that the DB should provide this data, then one possible query would look like this:

SELECT Name, Age FROM Person
UNION ALL
SELECT 'No person', 0 FROM dual a WHERE NOT EXISTS (SELECT 1 FROM Person)

All these guys suggesting COALESCE or IFNULL seem to have overlooked the fact that there aren't any rows to at all. In the query above, the bottom query (everything after the UNION ALL) is a query that results in one row if Person has no records in it

SQL SERVER - Add New Column With Default Value, If the value is not provided to any column while inserting a new row in the table, the default value will be used instead. In this article, we will explain the benefits  The DEFAULT constraint is used to provide a default value for a column. The default value will be added to all new records IF no other value is specified. SQL DEFAULT on CREATE TABLE The following SQL sets a DEFAULT value for the "City" column when the "Persons" table is created:


Set DEFAULT values in MySQL - Querychat, ALTER TABLE table_name ADD column_name tada_type NOT NULL If you set the new column nullable, that column value for all existing  For example in row 1: =IF (A1<>"", 0,"") which would display a null string (appear blank) until you entered a value in column A . Copy down as far as needed. Then as you enter values in column A, the default value will show up in your target column (s). You can then overwrite the default formulas with other values if desired.


MS SQL Server, It will automatically use the default Value for all existing records, whether you specify WITH VALUES or not if the Column is NOT NULL. You can  SELECT so.name AS table_name, sc.name AS column_name, sm.text AS default_value FROM sys.sysobjects so JOIN sys.syscolumns sc ON sc.id = so.id LEFT JOIN sys.syscomments sm ON sm.id = sc.cdefault WHERE so.xtype = 'U' AND so.name = @yourtable ORDER BY so.[name], sc.colid


Add a column with a default value to an existing table in , The Default Value constraint specifies a value to populate a column with if none is provided. You can also add the DEFAULT value constraint to an existing table through Any other column-level constraints you want to apply to this column. 1) run the query and put results in a temp table (or table variable) 2) check to see if the temp table has results 3) if not, return an empty row by performing a select statement similar to this (in SQL Server): select '' as columnA, '' as columnB, '' as columnC from #tempTable Where columnA, columnB and columnC are your actual column names.