A. 在pl/sql里建一表,其中有些字段的值要限定,比如项目名称被限定为:项目1,项目2,项目3;怎么写代码啊
建立一个取值范围表(码表)作为主表,然后再建立你需要的表(作为从表)。在建表时需要限定的字段作为外键与码表的字段相互关联。这样每次修改表的这些字段时,自动去校验该值是否码表中存在的值。
B. sql 月份排序时为什么是从10月 11月 12月 1月......而不是1月 2月 …10月 1
摘要 Sql server数据库的情况下
C. 这样的sql语句怎么写:表名A ,字段名A_1,A_1字段里面只有数值1或者2,现在想把是1的显示为B,2显示为S
使用如下语句即可:
select case when a_1 = '1' then 'B' when a_1 = '2' then 'S' else a_1 end as a_1 from a;
D. sqlserver2005怎么设置某字段取值只能为为0和1
可以用函数嵌套,试一下用 select cast(rand(checksum(newid()))*2 as int)
给你看个例子
create table id (id int primary key not null identity,b as cast(rand(checksum(newid()))*2 as int) )
alter table id add name varchar(20)
insert into id(name)values('掌声呢')
insert into id(name)values('掌声呢')
insert into id(name)values('掌声呢')
select * from id
E. 用sql语句检索学生表中所有出生月份为单数的记录
select * from 学生表 where month(生日)%2 = 1
其中“学生表”是表名;“生日”是记录学生生日的字段名。
“month( )”是求日期中的月份的函数。
“%”是求余数的运算符, month(生日)%2 就是求生日中月份除以2的余数,余数为1就是奇数。
F. SQL中规定某列值只能是0或者1的约束该怎么写
SQL CHECK约束。
CHECK约束用于限制列中的值的范围。
如果对单个列定义CHECK约束,那么该列只允许特定的值。
如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。
--删除表
drop table temp;
--创建表
CREATE TABLE temp (flag NUMBER(1));
--增加约束
ALTER TABLE tempADDCONSTRAINTck_temp_flag CHECK
(flag=1 or flag=0);
--测试效果版
insert into temp values(1);
insert into temp values(0);
insert into temp values(1);
--测试效果(约束禁止插入数据),提示权:违反检查约束条件
insert into temp values(2);
insert into temp values(3);
SQL CHECK Constraint on CREATE TABLE。
下面的SQL在"Persons"表创建时为"Id_P"列创建CHECK约束。CHECK约束规定"Id_P"列必须只包含大于0的整数。
My SQL:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)
(6)sql月份字段只能为1或2扩展阅读:
不同数据库的约束写法:
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULLCHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
SQL CHECK Constraint on ALTER TABLE.
如果在表已存在的情况下为"Id_P"列创建CHECK约束,请使用下面的SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Id_P>0)
如果需要命名CHECK约束,以及为多个列定义CHECK约束,请使用下面的SQL语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销CHECK约束。
如需撤销CHECK约束,请使用下面的SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
G. SQL语句如何筛选 字段1 字段2 01 是 02 是 01 否 02 是
select * from (select 字段1 from 表1 where 字段2='是' group by 字段1) A where A.字段1 not in (select 字段1 from 表1 where 字段2 like '%否%');
H. SQL 查一段时间之间的数据 比如1月份到2月份的数据
也不知道是不是你想要的内容
思路:单独用SQL求服务申告总数量(scum)和完成数量(success)然后显示到一个表里。
select
'服务申告经理统计' as title,
(
select count(*) from sr
where statusdate between '2011-01-18' and '2011-02-19'
) as scum,
(
select count(*) from sr
where statusdate between '2011-01-18' and '2011-02-19' and closetime_mep is null
)success
I. SQL语句中 招标方式代号只能够为1或者2,其中1表示"公开",2表示“邀请”
不知道你啥意思,你是要如果你的字段是1,2就查询对应显示?
如果是这样的话,直接用case语句就可以了
select case when 字段=1 then '公开' when 字段=2 then '邀请' end
from 表,,,,
不知道是不是你要的效果
J. asp文件中sql-between月份单双问题
首先你应该把字段的日期类型改为日期时间型,如果你目前为字符串的话可以采用replace()函数把/转换为“-”横线,然后再更改字段类型。
但是让我迷惑的是,怎么回出现2014-1-1和2015/1/1这两种格式呢,我一般用2015-01-01这种格式,当然了2015-1-1和2015-01-01是相等的,2015/1/1和2015/01/01是相等的,理论上只要把/替换成-号就可以进行字段类型的更改了,
第一个SQL语句:update 表名 set 我是时间字段=replace(我是时间字段,'/','-'),把所有/字符串全部替换为-.
第二个SQL语句:update 表名 set 我是时间字段=replace(我是时间字段,' ',''),替换所有空格为空,这一句可以不加,只要你能字段类型更改成功。
备注:现在讨论下出现两种格式不统一的原因:数据库字段格式本来就设置为2015/1/1这种格式(2015/1/1这种格式在ACCESS中有人使用),但是2015-1-1却可以正确写入,既然都是日期时间型的话自然可以用SQL直接筛选啊,但是出现数据不准可能是设置错误,正确格式应该为2015-1-1 00:00:00,也就是说必须带时分秒的。默认SQL语句:select * from 表名 where 我是时间字段>='2015-1-1' and 我是时间字段<='2015-1-31',这条SQL语句的时间范围为查询2015-1-1 00:00:00 到2015-1-31 00:00:00,所以应该SQL语句应该是:select * from 表名 where 我是时间字段>='2015-1-1 00:00:00' and 我是时间字段<='2015-1-31 23:59:59',你调试下看时间段停留在哪?
如果sql语句不能用逗号的号可以改成#(ACCESS有这种毛病)