标签: sql

在SQL数据库中存储没有一年的日期的最佳方法是什么?

我正在构建一个应该存储在数据库中的每日报价的应用程序.每个报价分配一年中的一天,包括2月29日的一天.由于引用只关心那一天不是一年,我还应该使用smalldatetime类型吗?请让我知道你的意见,谢谢!!

.net sql sql-server

11
推荐指数
2
解决办法
5762
查看次数

截断日期到会计年度

以下数据库视图将日期截断为会计年度(4月1日):

CREATE OR REPLACE VIEW FISCAL_YEAR_VW AS
SELECT
  CASE
    WHEN to_number(to_char(SYSDATE, 'MM')) < 4 THEN    
      to_date('1-APR-'||to_char(add_months(SYSDATE, -12), 'YYYY'), 'dd-MON-yyyy')
    ELSE
      to_date('1-APR-'||to_char(SYSDATE, 'YYYY'), 'dd-MON-yyyy')
  END AS fiscal_year
FROM
  dual;
Run Code Online (Sandbox Code Playgroud)

这允许我们根据今天的日期计算当前会计年度.

如何简化或优化此计算?

sql oracle truncate oracle11g

11
推荐指数
1
解决办法
8431
查看次数

反向COALESCE

SQL Server 2005中是否有一个函数返回NULL [或一个布尔值],如果任何参数(任何类型)都是NULL,这将使我免于写入IF a IS NULL OR b IS NULL OR c IS NULL ....

sql t-sql sql-server sql-server-2005

11
推荐指数
2
解决办法
5727
查看次数

计数列分组

我有如下的sql:

select a.dept, a.name
  from students a
 group by dept, name
 order by dept, name
Run Code Online (Sandbox Code Playgroud)

得到结果:

dept   name
-----+---------
CS   | Aarthi
CS   | Hansan
EE   | S.F
EE   | Nikke2
Run Code Online (Sandbox Code Playgroud)

我想总结每个部门的学生人数如下:

dept   name        count
-----+-----------+------  
CS   | Aarthi    |  2
CS   | Hansan    |  2
EE   | S.F       |  2
EE   | Nikke2    |  2
Math | Joel      |  1
Run Code Online (Sandbox Code Playgroud)

我该怎么写sql?

sql

11
推荐指数
2
解决办法
3万
查看次数

在脚本中将N放在字符串前面有什么缺点吗?它被认为是"最佳做法"吗?

假设我有一个包含varchar字段的表.如果我像这样插入:

INSERT MyTable 
 SELECT N'the string goes here'
Run Code Online (Sandbox Code Playgroud)

这与之间有什么根本区别:

INSERT MyTable 
 SELECT 'the string goes here'
Run Code Online (Sandbox Code Playgroud)

我的理解是,如果字符串包含Unicode字符且目标列不是unicode,则只会出现问题.除此之外,SQL处理它很好并将字符串N''转换为varchar字段(基本上忽略了N).

我的印象是N在弦乐前面是一个很好的练习,但我无法找到任何关于它的讨论我认为是确定的.

sql sql-server unicode

11
推荐指数
2
解决办法
3172
查看次数

mysql中REGEXP_SUBSTR的等价物是什么?

我想从表的字符串列中提取一个单词.

description
===========================
abc order_id: 2 xxxx yyy aa
mmm order_id: 3 nn kk yw
Run Code Online (Sandbox Code Playgroud)

预期结果集

order_id
===========================
2
3
Run Code Online (Sandbox Code Playgroud)

表最多有100行,文本长度为~256个字符,列总是有一个order_id存在.因此,性能不是问题.

在Oracle中,我可以使用REGEXP_SUBSTR此问题.我如何在MySQL中解决这个问题?

编辑1

我正在使用LOCATE和SUBSTR来解决问题.代码很难看.编写代码十分钟后,我正在诅​​咒编写如此丑陋代码的人.

我没有在MySQL文档中找到REGEXP_SUBSTR函数.但我希望它存在..

回答:为什么不能优化表格?为什么数据以这种愚蠢的方式存储?

我给出的例子只是表示我试图解决的问题.在实际情况中,我使用基于数据库的第三方排队软件来执行异步任务.队列将Ruby对象序列化为文本.我无法控制表结构或数据格式.队列中的任务可以重复出现.在我们的测试设置中,由于过时的数据,一些重复的任务失败了.我必须删除这些任务以防止错误.这种错误并不常见,因此我不想维护规范化的影子表.

regex mysql sql substr

11
推荐指数
3
解决办法
2万
查看次数

tsql脚本将删除级联添加到现有表

是否有一个脚本可用于启用现有表的级联删除.谢谢.

sql t-sql sql-server cascade cascading-deletes

11
推荐指数
1
解决办法
1万
查看次数

什么时候`x IS NOT NULL`与`NOT(x IS NULL)`不一样

对于什么x

表达x IS NOT NULL 不等于NOT(x IS NULL),如在2VL的情况下

(引用这个答案,引用Fabian Pascal 数据库管理中的实际问题 - 思维从业者的参考 - 接近答案的结尾)

我的猜测是什么时候x IS NULL NULL,但我无法猜测是什么时候(即我没有检查SQL标准). 这个猜测是不正确的.

sql null

11
推荐指数
2
解决办法
878
查看次数

Oracle SQL Select中的行数?

我需要知道在Oracle中的select中返回了多少条记录.目前,我做了两个查询:

SELECT COUNT(ITEM_ID) FROM MY_ITEMS;

SELECT * FROM MY_ITEMS;
Run Code Online (Sandbox Code Playgroud)

我需要知道COUNT但我讨厌做两个查询.有办法吗?

SELECT * FROM MY_ITEMS 
Run Code Online (Sandbox Code Playgroud)

然后找出那里有多少条记录?

sql oracle select count

11
推荐指数
1
解决办法
5万
查看次数

在SQLite中按月分组

我有一个包含事务的SQLite数据库,每个事务都有价格transDate.

我想检索按月分组的事务总和.检索到的记录应如下所示:

Price    month
230        2
500        3
400        4
Run Code Online (Sandbox Code Playgroud)

c# sql sqlite group-by

11
推荐指数
2
解决办法
1万
查看次数