SQL正在检测以下字符串ISNUMERIC:
'07213E71'
我相信这是因为'E'被归类为数学符号.
但是,我需要确保只有整数的值才返回True.
我怎样才能做到这一点?
我正在运行一系列生成数据库的脚本.它们在SQL Server 2012(11.0.5058.0)上运行完成.在SQL Server 2014(12.0.4213.0)上,脚本错误:
消息0,级别11,状态0,行0
当前命令发生严重错误.结果(如果有的话)应该被丢弃.消息0,级别20,状态0,行0
当前命令发生严重错误.结果(如果有的话)应该被丢弃.
看来,IsNumeric在CTE查询中使用语句的结果会破坏查询构建,因为不需要行来导致错误.我遇到的案例的简化版本是:
CREATE TABLE #Temp1 ( CTECol VARCHAR );
CREATE TABLE #Temp2 ( NumCol Int null);
;
WITH cte AS
(
SELECT
CASE WHEN ISNUMERIC(t.CTECol) = 1
THEN 1
ELSE null
END as IsNCol1
FROM
#Temp1 t
)
SELECT *
FROM #Temp2
JOIN cte ON #Temp2.NumCol = cte.IsNCol1
Run Code Online (Sandbox Code Playgroud)
我能找到的最简单的案例是:
CREATE TABLE #Temp3 ( CTECol Int );
CREATE TABLE #Temp4 ( NumCol Int );
;
WITH cte AS
(
SELECT ISNUMERIC(t.CTECol) …Run Code Online (Sandbox Code Playgroud) sql-server isnumeric common-table-expression sql-server-2014
我需要从数据库中找到满足某种格式约定的最高值.具体来说,我想找到看起来最高的价值
EU999999('9'是任意数字)
select max(col)将返回类似'EUZ ...'的内容,例如我想要排除的内容.以下查询可以解决问题,但我无法通过Linq-to-SQL生成此问题.似乎没有SQL Server中的isnumeric()函数的转换.
select max(col) from table where col like 'EU%'
and 1=isnumeric(replace(col, 'EU', ''))
Run Code Online (Sandbox Code Playgroud)
编写数据库函数,存储过程或其他任何性质的东西都在我的首选解决方案的列表中,因为这个表是我的应用程序的核心,我不能轻易地用其他东西替换表对象.
什么是下一个最佳解决方案?
在经典的asp失败中,IsNumeric函数有一个非常奇怪的问题.这样的事情发生在我的代码中:
Response.write Score // 79.617
Response.write IsNumeric(Score) // false
Response.write IsNumeric("79.617") // true
Run Code Online (Sandbox Code Playgroud)
有没有人知道为什么会发生这种情况?
在规范中,据说这些函数适用于可以转换为数字的字符串,从上面的例子可以看出我得到"真实"的结果.但是什么可以导致我的问题呢?
如何在JSTL中执行此简单检查(不扩展任何java类和其他JSP函数).我需要这样:
<c:if test="${fn:isNumeric()}">
... do something ...
</c:if>
Run Code Online (Sandbox Code Playgroud)
提前致谢.
是否可以使用IsNumeric()测试字符串并返回true,但是当您使用CInt()将相同的字符串转换为整数并将其分配给integer类型的变量时,它会给出类型不匹配错误?
我问因为我得到了一个类型不匹配错误,所以我在尝试强制转换之前使用IsNumeric()检查字符串是否为数字,但我仍然得到错误.
我正用这个撕掉我的头发.
这是有问题的代码.
iGlobalMaxAlternatives = CInt(strMaxAlternatives)是发生错误的地方.
Dim strMaxAlternatives As String
Dim iGlobalMaxAlternatives As Integer
iGlobalMaxAlternatives = 0
bSurchargeIncInFare = True
strMaxAlternatives = ReadStringKeyFromRegistry("Software\TL\Connection Strings\" & sConn & "\HH", "MaxAlt")
If IsNumeric(strMaxAlternatives) And strMaxAlternatives <> "" Then
iGlobalMaxAlternatives = CInt(strMaxAlternatives)
End If
Run Code Online (Sandbox Code Playgroud) 我想要做的是检查浮动输入是否是一个数字.我被要求使用IsNumeric()方法.问题是我正在使用MonoDevelop,我无法弄清楚为什么这不起作用.好像我已经添加了我需要的汇编引用.
从头开始.我该怎么做呢?我是否必须向VB程序集引用添加内容?并且,如果在我尝试在VisualStudio上学的时候这仍然有用吗?
static void getBookInfo(Book book)
{
Console.Write("Enter Book Title: ");
book.Title = Console.ReadLine();
Console.Write("Enter Author's First Name: ");
book.AuthorFirstName = Console.ReadLine();
Console.Write("Enter Author's Last Name: ");
book.AuthorLastName = Console.ReadLine();
Console.Write("Enter Book Price: $");
book.Price = float.Parse(Console.ReadLine());
}
Run Code Online (Sandbox Code Playgroud)
VB的参考文件如下所示:
public class VBCodeProvider : CodeDomProvider
{
// Constructors
public VBCodeProvider ();
public VBCodeProvider (IDictionary<string, string> providerOptions);
// Methods
public virtual ICodeCompiler CreateCompiler ();
public virtual ICodeGenerator CreateGenerator ();
public virtual TypeConverter GetConverter (Type type);
public virtual void GenerateCodeFromMember (CodeTypeMember member, TextWriter …Run Code Online (Sandbox Code Playgroud) 我运行一个宏,该宏从PDF文件复制表格并将其保存在Excel中。一些表包含空单元格,在我的分析中,我需要知道空单元格的数量。我有一个遍历每一列的函数,以检查该单元格中的值是否为数字。麻烦的是,当我在一个空单元格上运行此函数时,它返回true。我什至尝试使用Isblank()函数手动检查单元格,它返回“ false”。(如果我在粘贴范围之外的任何单元格上尝试此操作,它将返回“ true”)
我猜想当我从PDF复制并粘贴内容时,它会以某种方式为空白单元格粘贴一些值。
有没有人遇到过类似的问题?如果是这样,关于如何解决的任何想法?
如果有帮助,这是我用来复制和粘贴的代码
'Initialize Acrobat by creating App object
Set PDFApp = CreateObject("AcroExch.App")
'Set AVDoc object
Set PDFDoc = CreateObject("AcroExch.AVDoc")
'Open the PDF
If PDFDoc.Open(PDFPath, "") = True Then
PDFDoc.BringToFront
'Maximize the document
Call PDFDoc.Maximize(True)
Set PDFPageView = PDFDoc.GetAVPageView()
'Go to the desired page
'The first page is 0
Call PDFPageView.GoTo(DisplayPage - 1)
'-------------
'ZOOM options
'-------------
'0 = AVZoomNoVary
'1 = AVZoomFitPage
'2 = AVZoomFitWidth
'3 = AVZoomFitHeight
'4 = AVZoomFitVisibleWidth
'5 = AVZoomPreferred
'Set the …Run Code Online (Sandbox Code Playgroud) 我有一个小问题要揭露:
我想从实体中提取,假设其名称为"CustomerDetail",其中特定字段(代码)只有数字字符的所有行.
在HQL中不存在ISNUMERIC()函数,如Sql Server,以及应用regex函数的可能性.
可能的解决方案如下:
SELECT C
FROM CustomerDetail C
WHERE C.code NOT LIKE '%A%'
AND C.code NOT LIKE '%B%'
Run Code Online (Sandbox Code Playgroud)
等重复这个条件整体alfabetical字母和特殊字符.
我认为这是一个糟糕的解决方案,性能低下(大量的LIKE)
拜托,您能告诉我一个更聪明的解决方案吗?
先感谢您
PS我的应用程序是多DBMS所以我不能使用SQL查询
我正在为我的Visual Basic类编写一个程序并且有一个快速的问题.我们鼓励做的一件事是检查以确保在文本框中输入的数量实际上是一个数字.我们的教授建议使用IsNumeric来执行此检查,但我遇到了一些麻烦.在将其添加到指令之前,我已经编写了很多代码,因此不确定如何将其集成到我已有的代码中.
该程序的主要目的是允许用户将成分从一个列表框添加到配方列表框,在文本框中输入每个选定成分的数量,并计算配方的总卡路里.我现在编写代码的方式,IsNumeric是一个嵌套if语句的一部分,我将开始将所选成分添加到配方列表框中.我不确定这是否是正确的地方.
这是我到目前为止编写的代码.
Public Class Form1
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
Dim i As Integer = lstIngredients.SelectedIndex
Dim Quantity As Double
Dim intCount As Integer = 0
If Trim(txtQuantity.Text = "") Then
Quantity = 1
Else
Quantity = Me.txtQuantity.Text
End If
If txtQuantity.Text Is IsNumeric() Then
If intCount < Quantity Then
lstRecipe.Items.Add(Quantity & " " & lstIngredients.Text)
intCount += 1
End If
Else
MessageBox.Show("The quantity entered is not numeric. Please add a numeric quantity.") …Run Code Online (Sandbox Code Playgroud)