SQL 数据库 判断取数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 数据库 判断取数相关的知识,希望对你有一定的参考价值。

求教高手,通过一个字段判断查询

当A等于1,显示B。A=0 显示C
当A等于1,显示B字段中的数值。A=0 显示C字段中的数值

A、B、C 均为 numeric类型

参考技术A select decode(A,1,B,0,C) from table; 参考技术B SELECT CASE WHEN A = 1 THEN B WHEN A = 0 THEN C ELSE A END AS col1
FROM TABLE

追问

执行的时候 提示 从数据类型 varchar 转换为 numeric 时出错呢

追答

既然是数字类型,不会出现VARCHAR 转 NUMERRIC ,你确定ABC类型都是NUMERIC么

本回答被提问者采纳

sql 取周数

sql 里的一些函数可以实现,但是得出的是期天为一周的开始,星期六为一周结束,我想要的是按国人的长长星期一为一周开始,星期天为一周结束,望有人能助我。
谢谢大家,回答者: ytbelwxg -的可以,但是我用不上,先谢谢,回答者: simenyu不知道你那 set datefirst 1 会不会装整个库给改了。还是查询时临时改的,

先用dateadd(dd,1,.....)来加一天,再用你的办法

如cast(dateadd(dd,1,getdate()) as int)/7-cast(dateadd(dd,1,'2009-1-1') as int)/7
参考技术A create function f_orderby (@date datetime)
returns int
as
begin
declare @i int,@order int
select @i=datepart(weekday,@date)
if @i=1
select @order=7
if @i=2
select @order=1
if @i=3
select @order=2
if @i=4
select @order=3
if @i=5
select @order=4
if @i=6
select @order=5
if @i=7
select @order=6
return @order
end

这个函数返回的值,星期一是第一天……,星期日是第七天,可以用来排序,我估计你应该是这个意思吧!

以上,希望对你有所帮助!
参考技术B SQL Server中,默认一周的第一天是星期日.
若要改变它,需要设置datefirst值.
如:set datefirst 1,则把星期一作为一周的第一天.
参考技术C DECLARE @Date DATETIME
SET @Date = GETDATE()
--星期一,取得你所设置日期的星期一
SELECT DATEADD(d,-(DATEPART(w,@Date)+@@DATEFIRST-2)%7,@Date)
--星期天
SELECT DATEADD(d,7,DATEADD(d,-(DATEPART(w,@Date)+@@DATEFIRST-1)%7,@Date))
参考技术D select datepart(week,getdate()) a

以上是关于SQL 数据库 判断取数的主要内容,如果未能解决你的问题,请参考以下文章

MSSQL 数据库问题 ,从一个表取数更新另外一个表

SQL 实现的逻辑

sql条件判断语句

多库取数的性能优化方案

给一句 SQL 就能做多维分析

QB资料学习.01