什么是SQL的所有特殊字符的完整列表(我对SQL Server感兴趣,但其他的也很好)LIKE子句?
例如
SELECT Name FROM Person WHERE Name LIKE '%Jon%'
Run Code Online (Sandbox Code Playgroud)
% - 任何零个或多个字符的字符串._ - 任何单个字符% - 任何零个或多个字符的字符串._ - 任何单个字符SYBASE
% - 任何零个或多个字符的字符串._ - 任何单个字符
参考指南 [PDF]
% - 任何零个或多个字符的字符串._ - 任何单个字符PostgreSQL还有SIMILAR TO运算符,它添加了以下内容:
[specifier][^specifier]| - 两种选择中的任何一种* - 重复前一项零次或多次. …好像Money类型如所描述的不鼓励这里
我的应用程序需要存储货币,我应该使用哪种数据类型?数字,金钱还是FLOAT?
我知道在sql server中我们不能使用Group_concat函数但是这里有一个问题,我需要Group_Concat我的查询.我谷歌它发现了一些逻辑,但无法纠正它.我的SQL查询是
select m.maskid,m.maskname,m.schoolid,s.schoolname,
md.maskdetail
from tblmask m join school s on s.id = m.schoolid
join maskdetails md on m.maskid = md.maskid
order by m.maskname ;
Run Code Online (Sandbox Code Playgroud)
它给我的结果如

只看前三行在那个maskid,maskname,schoolid,schoolname是相同的但是maskdetail是不同的,所以想要一行,其中最后一列可以包含所有maskdetails,如maskid等等.
我希望我的输出像

等等.请在查询时帮助我.
提前致谢.
有人能告诉我在SQL Server中何时何地需要使用begin和end阻止?
此外,该Go关键字到底是做什么的?
我正在编写一个批处理文件来执行其他一些程序.在这种情况下,我需要提示输入密码.我有办法屏蔽输入文本吗?我不需要打印*******字符而不是输入字符.Linux的密码提示行为(在打字时不打印)就足够了.
@echo off
SET /P variable=Password :
echo %variable%
Pause
Run Code Online (Sandbox Code Playgroud)
这将读取输入,但我不能使用这种方法掩盖文本.
我在PostgreSQL 8.3.8数据库中有一个表,它没有键/约束,并且有多行具有完全相同的值.
我想删除所有重复项,每行只保留1份.
特别是有一列(称为"密钥")可用于识别重复(即每个不同的"密钥"应该只存在一个条目).
我怎样才能做到这一点?(理想情况下使用单个SQL命令)在这种情况下,速度不是问题(只有几行).
我正在使用'postgres'超级用户进行全新的postgresql安装.登录通过:
sudo -u postgres psql
postgres=# createdb database
postgres-# \list
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 |
template0 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
template1 | postgres | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres
: postgres=CTc/postgres
Run Code Online (Sandbox Code Playgroud)
没有错误,但没有创建表.有任何想法吗?
我想将Java类文件与SQL Server 2012连接.我已经使用SQL Server身份验证登录.但我收到连接错误.
错误:与主机127.0.0.1,端口1433的TCP/IP连接失败.错误:"连接被拒绝:连接.验证连接属性.确保主机上正在运行SQL Server实例并接受端口上的TCP/IP连接.确保防火墙不阻止与端口的TCP连接".
我的代码---
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //1. Register your driver
//2. get the connection object
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin");
//"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" + "databaseName=MB;user=sa;password=123;";
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password");
//3. Prepare a statement
Statement stmt = con.createStatement();
//4. Write the query`
String sql = "Select * from employee";
//5. Execute the statement and
ResultSet rs = stmt.executeQuery(sql);
//6. Process the result set
while (rs.next())
{
System.out.println(rs.getInt(1));
}
Run Code Online (Sandbox Code Playgroud) 运行SQL到我的数据类型值从转换的时候,我一直得到以下错误varchar来datetime.
消息242,级别16,状态3,行1将varchar数据类型转换为日期时间数据类型导致超出范围的值.
我已经检查了数据并且看不到任何奇怪的东西:执行以下检查并且所有返回都没有结果
SELECT [Date] from table where [DATe] is null
SELECT [Date] from table where [DATe] = ''
SELECT [Date] from table where LEN([date])> 10
SELECT [Date] from table where LEN([date])< 10
SELECT top 100 [Date] , SUBSTRING([date],4,2) from [table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 12
SELECT top 100 [Date] , SUBSTRING([date],1,2) from table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 31
Run Code Online (Sandbox Code Playgroud)
还有什么值得关注的东西,可能值得指点或帮助解决这个问题吗?似乎无法深究它.
我在表格中插入了一些值.有一列其值是自动生成的.在我的代码的下一个语句中,我想要检索此值.
你能告诉我怎么做正确的方法吗?
sql-server ×5
postgresql ×3
sql ×3
t-sql ×2
batch-file ×1
cmd ×1
datetime ×1
duplicates ×1
java ×1
jdbc ×1
psql ×1
sql-like ×1