我有以下练习:
将名字,中间名,姓氏和名字后缀连接起来,以以下格式形成客户的名字: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
如果MiddleName和Suffix均为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) 从到目前为止的内容来看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,中MM,SS因为在sql server 2005之前可能已经使用过。
使用SQL Server2012。谢谢
当我运行下面的代码时,我收到此错误:
为变量赋值的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 Server 2012中我正在使用
USE myDatabase;
GO
SELECT *
FROM sys.objects
WHERE type = 'U';
Run Code Online (Sandbox Code Playgroud)
可以在syBase中做同样的事情吗?