当前位置:首页 » 编程语言 » sql选字段
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql选字段

发布时间: 2023-02-23 06:56:22

sql数据库如何从两张不同的表中,筛选出不同的字段,如A表中选a,b两个字段,B表中选c,d字段,求sql语句

selecta,b,c,dfromA表,B表where表a和表b关联字段;

㈡ 如何筛选SQL字符串字段中部分值

一、先说筛选字符串字段中部分值的记录。
例如我有一个KKBH(卡口编号)字段,这是一个字典字段(对应另一个实体表(卡口表)的编号字段)。这个字段的值保存所属卡口值域{01,02,03}
本来想到的是通过or来实现,这样需要动态生成SQL语句。
后来想到一个办法用charindex搜索字符串的办法。将所有的要查的卡口编号组成类似'01@02'这样待查字符串。sql查询时通过charindex筛选出在待查字符串里有的KKBH的记录。
经测试使用or与使用charindex,两者在MSSQL中执行效率差不多。
具体实现:
用户界面查询需求:可能搜索N个卡口的记录(N的值域{1,所有卡口个数})。设计这个UI的形式一共三种:
一、一个多选listbox。用户界面运行时将卡口字典表载入listbox信息。
二、两个listbox,左边为待选,右边为已选,中间加两个按钮添加与删除。用户界面运行时将卡都字典表载入左边的listbox。
三、多个Checkbox。可以在界面设计阶段直接做死字典表,即有几个卡口就话几个checkbox。或者在程序运行根据字典表绘制动态绘制checkbox。
UI的优缺点这里不讨论,我这里选择第三种方式的动态绘制。
在查询阶段根据所选卡口生成待选字符串入:"01@02”
并将此条件传回后台查询服务程序
后台查询服务里只要待查字符串作为参数传入查询的SQL语句中(sql片段): charindex(卡口编号,@待查字符串)。当然也可以手动生成SQL方式传入"charindex(卡口编号,'"+待查字符串+"')".

二、模糊查询。
使用like的模糊查询发生效率是很低。
提高的解决办法与:
一、用full text index 结合contains函数。全文本索引,带了空间占用率很高。
二、通过charindex+substring实现简易模糊查询。使用substring分段,charindex实现类似like '%关键字%'。

㈢ 运用SQL如何提取想要的字段

这是提取某字符字段中的字符与之相似的。
SQL=Select 字段1 from tabel where 字段1' like '%喜欢%'
由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”、“';”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。

㈣ sql 字段选那种类型好,请个高手回答下

我建议你最好都用varchar类型的,因为这样就不用为程序代码转换数据类型而烦了,而且这几个字段都可以用varchar,且最多字的工程名称是十五个字以内也只是varchar(30)而已,所以建议你用varchar(50)就都搞定了
用代码建立数据库表这样写:
create table ProjectInfo

id varchar(50)primary key,
ProjectName varchar(50) not null,
responsible varchar(50) not null,
customs varchar(50) not null,
contact varchar(50) not null,
phone varchar(50) not null

㈤ 如何用Sql语句添加字段

通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数\x0d\x0a增加字段: alter table [表名] add 字段名 smallint default 0 增加数字字段,整型,缺省值为0\x0d\x0aalter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0\x0d\x0aalter table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0\x0d\x0aalter table [表名] add 字段名 double default 0 增加数字字段,双精度型,缺省值为0\x0d\x0aalter table [表名] add 字段名 Tinyint default 0 增加数字字段,字节型,缺省值为0\x0d\x0aalter table [表名] add 字段名 text [null] 增加备注型字段,[null]可选参数\x0d\x0a\x0d\x0aalter table [表名] add 字段名 memo [null] 增加备注型字段,[null]可选参数\x0d\x0a\x0d\x0aalter table [表名] add 字段名 varchar(N) [null] 增加变长文本型字段大小为N(1~255)\x0d\x0a\x0d\x0aalter table [表名] add 字段名 char [null] 增加定长文本型字段大小固定为255\x0d\x0a\x0d\x0aalter table [表名] add 字段名 Datetime default 函数增加日期型字段,其中函数可以是now(),date()等,表示缺省值\x0d\x0a\x0d\x0a(上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)\x0d\x0a\x0d\x0a删除字段: alter table [表名] drop 字段名\x0d\x0a\x0d\x0a修改变长文本型字段的大小:alter table [表名] alter 字段名 varchar(N)\x0d\x0a\x0d\x0a删除表: drop table [表名]\x0d\x0a\x0d\x0a创建表:\x0d\x0a\x0d\x0asql="CREATE TABLE [表名] ([字段1,并设置为主键] int IDENTITY (1, 1) NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,"&\x0d\x0a\x0d\x0a"[字段2] varchar(50),"&\x0d\x0a\x0d\x0a"[字段3] single default 0,"&\x0d\x0a\x0d\x0a"[字段4] varchar(100) null,"&\x0d\x0a\x0d\x0a"[字段5] smallint default 0,"&\x0d\x0a\x0d\x0a"[字段6] int default 0,"&\x0d\x0a\x0d\x0a"[字段7] date default date(),"&\x0d\x0a\x0d\x0a"[字段8] int default 1)"\x0d\x0a\x0d\x0aconn.execute sql\x0d\x0a\x0d\x0a有null 的表示字段允许零长

㈥ 如何筛选SQL字符串字段中部分值

如果需要筛选SQL字符串字段中部分值 应该怎么做呢?下面就教您筛选SQL字符串字段中部分值的记录的方法 供您参考

例如有一个KKBH(卡口编号)字段 这是一个字典字段(对应另一个实体表(卡口表)的编号字段) 这个字段的值保存所属卡口值域{ }

本来想到的是通过or来实现 这样需要动态生成SQL语句

后来想到一个办法用charindex搜索SQL字符串的办法 将所有的要查的卡口编号组成类似 @ 这样待查字符串 sql查询时通过charindex筛选出在待查SQL字符串里有的KKBH的记录

经测试使用or与使用charindex 两者在MSSQL中执行效率差不多

具体实现

用户界面查询需求 可能搜索N个卡口的记录(N的值域{ 所有卡口个数}) 设计这个UI的形式一共三种

一 一个多选listbox 用户界面运行时将卡口字典表载入listbox信息

二 两个listbox 左边为待选 右边为已选 中间加两个按钮添加与删除 用户界面运行时将卡都字典表载入左边的listbox

三 多个Checkbox 可以在界面设计阶段直接做死字典表 即有几个卡口就话几个checkbox 或者在程序运行根据字典表绘制动态绘制checkbox

UI的优缺点这里不讨论 我这里选择第三种方式的动态绘制

在查询阶段根据所选卡口生成待选SQL字符串入 " @ ”

并将此条件传回后台查询服务程序

lishixin/Article/program/MySQL/201311/29554

㈦ 在SQL查询语句中如何反选字段

对某张表记录的反选实际上就对某些记录行求非交集,而求非交集通常可以用自连接通过not in子查询、not exists子查询、left join、right join等方法获取。
例如下面例子反选t1表中字段col1>=100的记录:
12select * from t1 where col1 not in (select col1 from t1 where col1>=100);

12select a.* from t1 a where not exists (select 1 from t1 b where b.id=a.id and b.col1>=100);

123select a.* from t1 a left join (select * from t1 where col1>=100) b on a.id=b.id where b.id is null;

请留意,在大数据表的情况下,not in效率极低应避免使用;not exists在有索引可利用的情况下效率很高,但是无索引时碰到大数据表时运行效率也不行,此时同样应避免使用;left join或right join因为笛卡尔输出规则两表连接后可能会出行检索出来的记录行比实际行数增多的情况,编写相应SQL语句时大家需要注意处理这个问题。

㈧ sql如何按时间段选择部分字段

字段选好的话,直接在where语句里面添加个时间条件就可以了啊,oracle 里面直接添加一个,不过前提是你有时间这个字段,下面假设你的时间叫做 oper_date吧
select
字段1,
字段2
from 表 t
where t.oper_date >to_date('2012-02-01 00:00:00','yyyy-MM-dd HH24:mi:ss')
and t.oper_date < to_date('2012-02-29 23:59:59','yyyy-MM-dd HH24:mi:ss')
这个是oracle下的,DB2下的就用timestamp就行了

㈨ sql 选取字段中某段字符,

如果这个字段是有规律的,看图视乎是 开始4个字符+t +3个数字 +t,要获取2t之间的3个数字比较容易
select SUBSTRING(PRD_NO,6,3) from PRDT; 从第6个字符开始截取3个字符
如果没有固定规律就比较麻烦了。

㈩ 请教SQL如何选择一个字段里某一部分的方法

一楼的是固定长度的
要是之前或之后长度都不固定,可以这样写
instr(str,'/',0,-1)找到'/'的位置
select
subStr(
str
,instr(str,'/',1,1)-2
,5)
from
……
这句话是取/附近5个字符的代码!
有此数据库不支持instr可以用:
CHARINDEX