在Sql Server中,NULL不等于NULL。(为什么在SQL Server 中NULL = NULL求值为false)那么以下代码为什么返回单个NULL。
CREATE TABLE #TEMP1
(ID INT)
INSERT INTO #TEMP1
SELECT NULL
UNION ALL
SELECT NULL
SELECT DISTINCT ID FROM #TEMP1
DROP TABLE #TEMP1
ID
------
NULL
Run Code Online (Sandbox Code Playgroud)
我期望
ID
------
NULL
NULL
Run Code Online (Sandbox Code Playgroud) 在我的代码中,我有一个页面,其中包含来自3个不同表格的信息.为了显示这些信息,我做了3个SQL select调用,并将它们统一在一个列表中,作为Model传递给我的视图.我可以用一个SQL调用吗?数据彼此之间没有联系.
我的代码:
public ActionResult Index()
{
StorePageData PageData = new StorePageData();
return View(PageData);
}
public class StorePageData
{
public List<Table1Data> Table1 { get; set; }
public List<Table2Data> Table2 { get; set; }
public List<Table3Data> Table3 { get; set; }
public StorePageData()
{
Table1 = //loading from Database1
Table2 = //loading from Database2
Table3 = //loading from Database3
}
}
public class Table1Data
{
public int Id { get; set; }
public double Info1 { get; set; }
public string …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用pg_dump备份整个数据库:
<?php
include_once("../db.php");
$password = getPGPassword();
$user = getPGUser();
$db = getPGDb();
putenv("PGPASSWORD=" . $password);
$dumpcmd = array("pg_dump", "-i", "-U", escapeshellarg($user), "-F", "c", "-b", "-v", "-f", escapeshellarg('/var/www/backups/backup-'.time().'.sql'), escapeshellarg($db));
exec( join(' ', $dumpcmd), $cmdout, $cmdresult );
putenv("PGPASSWORD");
?>
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用psql来恢复整个数据库,但有没有办法可以使用查询有选择地恢复表的一部分?我能想到的最简单的事情是使用psql创建一个临时数据库,从所需的表中读取行,根据主串行键删除冲突的行,然后插入表中.
有一个更好的方法吗?我需要完整的SQL查询功能.
我有一个nvarchar列,其中包含一些条目列表(包括NULL) -
-1.00000
0.000000
0.010000
0.100000
0.500000
00000000
1.000000
1.500000
10.00000
10.50000
100.0000
1000.000
1001.000
1006.000
NULL
NULL
Run Code Online (Sandbox Code Playgroud)
我想将其转换为数字字段,以便我可以使用此字段进行一些计算.但是,我收到以下错误信息 -
将数据类型nvarchar转换为float时出错.
有人可以帮忙吗?
我正在MySQL Ver 14.14 Distrib 5.7.21, for Linux (x86_64)
使用 EditLine 包装器。我试图在外部硬盘驱动器(ext4 格式)中更改 sql 数据库的目录。我尝试在我的硬盘驱动器和符号链接 /var/lib/mysql 路径中更改目录。每次尝试启动 MySQL 时,都会遇到相同的错误:
? mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: activating (start-post) (Result: exit-code) since Sat 2018-01-27 12:47:34 GMT; 3s ago
Process: 3042 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
Process: 3035 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 3042 (code=exited, status=1/FAILURE); : 3043 (mysql-systemd-s)
CGroup: /system.slice/mysql.service
??control
??3043 /bin/bash /usr/share/mysql/mysql-systemd-start post
??3052 sleep 1
Jan 27 12:47:34 Lighter mysqld[3042]: mysqld: Can't …
Run Code Online (Sandbox Code Playgroud) 我正在使用 sql server,我需要为列添加索引,添加索引时它给我错误the operation 'alter table add index' is not supported with memory optimized tables.
,任何人都可以告诉我如何解决这个问题吗?这是我的表结构
CREATE TABLE "tb_Episode" (
"ID" INT NOT NULL,
"EpDataID" INT NULL DEFAULT NULL,
"UploadID" INT NULL DEFAULT NULL,
"CustID" INT NULL DEFAULT NULL,
"BranchID" INT NULL DEFAULT NULL,
"Branch" VARCHAR(20) NULL DEFAULT NULL,
"LastName" VARCHAR(19) NULL DEFAULT NULL,
"FirstName" VARCHAR(12) NULL DEFAULT NULL,
"Middle" VARCHAR(1) NULL DEFAULT NULL,
"MRN" INT NULL DEFAULT NULL,
"MedicareNbr" VARCHAR(10) NULL DEFAULT NULL,
"EpStart" DATE NULL DEFAULT NULL, …
Run Code Online (Sandbox Code Playgroud) 我需要备份我有权访问的数据库,但找不到该选项。
根据https://learn.microsoft.com/en-us/sql/azure-data-studio/tutorial-backup-restore-sql-server?view=sql-server-ver15我可以简单地右键单击数据库,转到“管理”,它应该在那里。
我可以右键单击数据库并获得“管理”选项,但这只提供了一些信息:
到目前为止,我一直在使用下面的格式来创建/更新表
IF EXISTS (SELECT 1 FROM sysobjects WHERE name = 'table_name' AND type = 'U')
DROP TABLE [dbo].[table_name]
GO
CREATE TABLE [dbo].[table_name]()
GO
Run Code Online (Sandbox Code Playgroud)
但是最近我遇到了一个案例,其中两个模式有一个同名的表。如何检查表是否存在于特定模式中?它只是SELECT 1 FROM sysobjects WHERE name = 'table_name' AND type = 'U'
需要修复的部分,我已将其余部分更改为:
IF EXISTS (SELECT 1 FROM sysobjects WHERE name = 'table_name' AND type = 'U')
DROP TABLE [schema_name].[table_name]
GO
CREATE TABLE [schema_name].[table_name]()
GO
Run Code Online (Sandbox Code Playgroud)
我当前的服务器版本是2008R2
这样的,所以我更喜欢也适用于该版本的答案。我有许多其他检查是通过这种方式完成的,所以我真的不想完全改变这种模式。
我需要数据字典视图来获取有关 oracle 中所有数据字典视图详细信息的所有信息
select * from user_dba;
desc dba_directiories;
Run Code Online (Sandbox Code Playgroud) 我尝试选择一个包含 1700 万条记录的表。大约需要10分钟。在这里您可以看到实时执行计划。
这是我的表结构:
CREATE TABLE [bas].[GatewayReceipt](
[Id] [INT] IDENTITY(1,1) NOT NULL,
[CustomerId] [INT] NULL,
[UserId] [INT] NOT NULL,
[RefNumber] [NVARCHAR](200) NULL,
[ResNumber] [NVARCHAR](200) NULL,
[Price] [DECIMAL](18, 5) NOT NULL,
[GatewayChannelId] [INT] NOT NULL,
[StatusId] [INT] NOT NULL,
[EntryDate] [DATETIME] NOT NULL,
[ModifyDate] [DATETIME] NULL,
[RowVersion] [TIMESTAMP] NOT NULL,
CONSTRAINT [PK_Bas_GatewayReceipt] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [FG_ATS]
) ON [FG_ATS]
GO
Run Code Online (Sandbox Code Playgroud)
请注意,我在 …
sql-server ×5
database ×2
sql ×2
asp.net-mvc ×1
azure ×1
c# ×1
indexing ×1
mysql ×1
oracle ×1
php ×1
postgresql ×1
schema ×1
t-sql ×1