sqlserver与运算
‘壹’ sqlserver中 and 和&& 有什么区别呢
sqlserver下,逻辑与是用关键字"and"来处理的.
sqlserver下,不支持&&
sqlserver下,仅支持&,但是其表示按位与,在两个整型值之间执行按位逻辑与运算,如:
select 8&power(2,4)
‘贰’ sqlserver 中乘法计算
如果没有主键的话可以这样来写
select Price,Number,TotalPrice
into #tmp
from a
left join b on a.BookID = b.BookID
update #tmp set TotalPrice = isnull(Price,0)*isnull(Number,0)
drop table #tmp
大致应该就是这样样子吧 , 我也没有在SQL上运行过 你可以先试试看
‘叁’ sqlserver怎么进行整数的移位运算
SQL SERVER
查看所有表名:
select name from sysobjects where type='U'
查询表的所有字段名:
Select name from syscolumns Where ID=OBJECT_ID('表名')
select * from information_schema.tables
select * from information_schema.views
select * from information_schema.columns
ACCESS
查看所有表名:
select name from MSysObjects where type=1 and flags=0
MSysObjects是系统对象,默认情况是隐藏的。通过工具、选项、视图、显示、系统对象可以使之显示出来。
Oracle
select cname from col where tname='ZW_YINGYEZ'
select column_name from user_tab_columns where table_name='ZW_YINGYEZ'
查询表字段数
select count(column_name) from user_tab_columns where table_name='表名'
‘肆’ oracle和sqlserver 位运算问题,请高手指教
在orcle里不能运行么?^是按位异或 ,就是2进制中 两个同位数有一个为1则为1,否则为0
‘伍’ 有关sqlserver中的乘法运算
不管是sql语句里还是存储过程里,没有什么特别的函数来作乘法去处,直接用*是可以的,可能还是你的语法哪里没写对
‘陆’ sql server如何在拼接字符串中使用运算符(+-*/)
以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。
sqlserver:
select '123'+'456';
oracle:
select '123'||'456' from al;
或
select concat('123','456') from al;
mysql:
select concat('123','456');
注意:oracle和mysql中虽然都有concat,但是oracle中只能拼接2个字符串,所以建议用||的方式;mysql中的concat则可以拼接多个字符串。
‘柒’ sqlserver根据某一个字段进行求和运算后去掉重复的数据
你的time,不一样。如果去掉重复的。是time这个字段不要,还是要哪一条数据?
你用的开窗函数,一般都是用来做排序的,去掉重复的,还是要用分组。
‘捌’ SQLServer 的逻辑运算符。ISNULL和IS NOT NULL的返回类型是什么
ISNULL 和 IS NOT NULL 返回的是bool(true/false)
比如有一个参数@Name
你可判断 if @Name is null 返回的就是true / false
‘玖’ SQLSERVER对索引的利用及非SARG运算符认识
写SQL语句的时候很多时候会用到filter筛选掉一些记录,SQL对筛选条件简称:SARG(search
argument/SARG)
复制代码
代码如下:
where
amount>4000
and
amount<6000上面这句就是筛选条件
当然这里不是说SQLSERVER的where子句,是说SQLSERVER对索引的利用在SQLSERVER对于没有SARG运算符的表达式,索引是没有用的,SQLSERVER对它们很难使用比较优化的做法。
意思是说,如果你的SQL语句中没有where子句包括非SARG运算符,那么你的SQL语句是不会用到表格中的索引的
下面说一下哪些是非SARG运算符:
非SARG运算符包括
NOT、
<>、
NOT
EXISTS、
NOT
IN、
NOT
LIKE
规律就是有“NOT”
关键字
或者
不等于的意思
基本上利用不了索引
还有一些内部函数,如果使用这些内部函数SQLSERVER也不会用到索引
内部函数,例如:CONVERT(),UPPER()等