小编CM2*_*M2K的帖子

SQL Server CONCAT案例

我有以下练习:

将名字,中间名,姓氏和名字后缀连接起来,以以下格式形成客户的名字:FirstName [MiddleName。] LastName [,Suffix]。请注意,应省略NULL值。

我将其解释为以下情况(从图像创建表并插入一些值):

请在下面找到我的示例数据,名称为#TB_Customer 在此处输入图片说明CustomerName是预期的结果,应采用以下格式

  • FirstName MiddleName.LastName, Suffix 如果我有所有领域的肠子。
  • MiddleName和Suffix可以是可选的,因此情况为:

  • 如果有一个suffix而不是一个,MiddleName那么CustomerName
    应该是形式Firstname LastName,Suffix

  • 如果有一个MiddleName而不是一个,suffix那么CustomerName
    应该是形式FirstName MiddleName.LastName

  • 如果MiddleNameSuffix均为null,CustomerName则应采用以下形式FirstName LastName)

这就是我得到的: 在此处输入图片说明

但是正如您所看到的,我编写的CustomerName案例查询无法按预期方式工作(请参阅cases上面的项目符号)

我为获取该CustomerName列而编写的查询是:

SELECT 
(case
when (MiddleName is not null and Suffix is not null)  then
CONCAT(c.FIRSTNAME,' ', c.MiddleName,'.', c.LASTNAME, ', ',Suffix)  
when (MiddleName is null and suffix is null) then 
CONCAT(c.FIRSTNAME,' ' …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2012

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

SQL-Server Time数据类型

从到目前为止的内容来看time,sql server(从2008年开始)中的数据类型应该能够以HH:MM格式存储时间。然后,我通过以下简单的练习自己尝试了此操作:

create table #mytable (id int, lat float, lon float, trajectory_id int, theTime time(5))
insert into #mytable values 
 ('1','15.8','17.1','162','10:01'),
 ('2','11.5','59.7','162','10:02'),
 ('3','16.4','79.9','162','10:03'),
 ('4','29.5','10.3','180','11:12'),
 ('5','58.2','11.1','180','11:13'),
 ('6','54.5','14.1','180','11:14'),
 ('7','14.9','15.2','166','13:40'),
 ('8','15.0','13.1','166','13:42')
Run Code Online (Sandbox Code Playgroud)

我对该列的预期结果theTime是:

theTime
10:01
10:02
10:03
11:12
11:13
11:14
13:40
13:42
Run Code Online (Sandbox Code Playgroud)

相反,我得到的是:

theTime
10:01:00.00000
10:02:00.00000
10:03:00.00000
11:12:00.00000
11:13:00.00000
11:14:00.00000
13:40:00.00000
13:42:00.00000
Run Code Online (Sandbox Code Playgroud)

当然,我可以选择left(theTime, 5)并获得预期的结果。但我想知道如何将其直接插入所需的格式。

我想使用内置函数,而不要将数字存储在intfor HH,中MMSS因为在sql server 2005之前可能已经使用过。

使用SQL Server2012。谢谢

sql sql-server time sql-server-2012

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

SQL Server - 将变量与数据检索操作相结合

当我运行下面的代码时,我收到此错误:

为变量赋值的SELECT语句不能与数据检索操作结合使用.

请参阅下面的代码:

DECLARE @M1 float
DECLARE @M2 float
declare @M3 float
DECLARE @M4 float
DECLARE @M5 float
DECLARE @M6 float
DECLARE @M7 float
DECLARE @M8 float
DECLARE @M9 float
DECLARE @M10 float
DECLARE @M11 float
DECLARE @M12 float
declare @theSum float

set @M1 = 0
set @m2 = 1954286
set @M3 = 1954286
set @M4 = 0
set @M5 = 0
set @M6 = 0
set @M7 = 0
set @M8 = 0
set @M9 = -11725714
set @M10 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 sql-server-2012

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

列出syBase中数据库中的所有表

在SQL Server 2012中我正在使用

USE myDatabase;
GO
SELECT  *
FROM    sys.objects
WHERE   type = 'U';
Run Code Online (Sandbox Code Playgroud)

可以在syBase中做同样的事情吗?

sybase sybase-ase sap-iq

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