假设我有这样的数据: string 1: 003Preliminary Examination Plan string 2: Coordination005 string 3: Balance1000sheet 我期望的结果是 string 1: 003 string 2: 005 string 3: 1000 我想在sql中实现它。 请帮忙。 提前致谢 :)
我正在尝试使用类似的过滤存储过程的项目。 该列是一个varchar(15)。 我试图过滤的项目在名称中有方括号。 例如: WC[R]S123456 。 如果我做一个LIKE 'WC[R]S123456'它不会返回任何东西。 我发现一些关于在LIKE使用ESCAPE关键字的信息,但我不明白如何使用它将方括号视为常规string。
CROSS JOIN和INNER JOIN和有什么不一样? 交叉连接: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status], FROM Customers CROSS JOIN Movies 内部联接: SELECT Movies.CustomerID, Movies.Movie, Customers.Age, Customers.Gender, Customers.[Education Level], Customers.[Internet Connection], Customers.[Marital Status] FROM Customers INNER JOIN Movies ON Customers.CustomerID = Movies.CustomerID 哪一个更好,为什么我会使用其中之一?
我曾经写这样的EXISTS检查: IF EXISTS (SELECT * FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Where Columns=@Filters END 在以前的DBA的一个人告诉我,当我做一个EXISTS子句,使用SELECT 1而不是SELECT * IF EXISTS (SELECT 1 FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET ColumnsX=ValuesX WHERE Columns=@Filters END 这是否真的有所作为?
这个查询有什么问题: INSERT INTO Users( weight, desiredWeight ) VALUES ( 160, 145 ) WHERE id = 1; 它没有WHERE子句。 我似乎忘了我的SQL ..
可能重复: SQL中的GROUP BY /聚合函数混淆 我得到一个错误 – Column'Employee.EmpID'在select列表中是无效的,因为它不包含在聚合函数或GROUP BY子句中。 select loc.LocationID, emp.EmpID from Employee as emp full join Location as loc on emp.LocationID = loc.LocationID group by loc.LocationID 这种情况与Bill Karwin给出的答案相吻合。 修正以上,适合由ExactaBox回答 – select loc.LocationID, count(emp.EmpID) — not count(*), don't want to count nulls from Employee as emp full join Location as loc on emp.LocationID = loc.LocationID […]
我有一个主键是varchar(255)的表。 有些情况已经出现,255个字符是不够的。 我试图将字段更改为文本,但出现以下错误: BLOB/TEXT column 'message_id' used in key specification without a key length 我怎样才能解决这个问题? 编辑:我也应该指出,这个表具有多列的复合主键。
我有一个start_date和end_date 。 我想要得到这两个date之间的date列表。 任何人都可以帮我指出我的查询中的错误。 select Date,TotalAllowance from Calculation where EmployeeId=1 and Date between 2011/02/25 and 2011/02/27 这里Date是一个datetimevariables。
我相信这个问题已经被回答了,但是我找不到使用search工具的答案。 使用C#我想运行一个.sql文件。 该sql文件包含多个sql语句,其中一些被分成多行。 我尝试阅读文件,并尝试使用ODP.NET执行文件…但是我不认为ExecuteNonQuery是真的devise来做到这一点。 所以我尝试通过产生一个进程使用sqlplus …但是,除非我用UseShellExecute设置为真的产生的进程sqlplus将挂起,永远不会退出。 这是不起作用的代码。 Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = "sqlplus"; p.StartInfo.Arguments = string.Format("xx/xx@{0} @{1}", in_database, s); p.StartInfo.CreateNoWindow = true; bool started = p.Start(); p.WaitForExit(); WaitForExit永远不会返回….除非我将UseShellExecute设置为true。 UseShellExecute的副作用是你不能捕获redirect的输出。
我有一个约50000行的SQL Server表。 我想随机select大约5000行。 我想到了一个复杂的方法,用“随机数”列创build临时表,将表复制到那个表中,循环遍历临时表,并用RAND()更新每一行,然后从该表中select随机数列<0.1。 我正在寻找一个简单的方法来做到这一点,如果可能的话,在一个单一的声明。 本文build议使用NEWID()函数。 这看起来很有希望,但我看不出我如何可靠地select一定比例的行。 有人曾经这样做过? 有任何想法吗?