小编use*_*599的帖子

过滤字符以仅返回字符串中的数字字符?

我想过滤一个nvarchar字段以仅返回数值。

我有一些 SQL 可以做到这一点,但它似乎比它需要的要复杂得多。我有兴趣找出是否有人有更好的方法来过滤掉字符串中的任何非数字字符?

IF OBJECT_ID('tempdb..#MOB') IS NOT NULL
BEGIN
    DROP Table #MOB
END

SELECT [mob]
INTO #MOB
FROM (
SELECT '(00) 1234 5678' AS [mob]
UNION
SELECT '1234 5678' AS [mob]
UNION
SELECT '+61 012 345 678' AS [mob]
) AS temp


;WITH [fill] ([Num], [Index], [MOBILEPHONE])
AS
(
    SELECT 
    CASE 
        WHEN [MOBILEPHONE] IS NOT NULL
        THEN SUBSTRING([MOBILEPHONE], 1, 1) 
        ELSE NULL 
    END AS [Num]
    , 1 AS [INDEX], [MOBILEPHONE]
    FROM (
        SELECT DISTINCT [mob] AS [MOBILEPHONE] …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2 string-manipulation

6
推荐指数
3
解决办法
5496
查看次数

当参数不为空时,SQL geography::point null 参数错误?

我收到此错误:

'geography::Point' failed because parameter 1 is not allowed to be null.
Run Code Online (Sandbox Code Playgroud)

在这个sql上:

SELECT [ID], geography::Point([lat], [long], 4326) AS [loc]
FROM (
  SELECT [ID], CONVERT(float, [lat]) AS [lat], CONVERT(float, [long]) AS [long]
  FROM (
    SELECT [ID], [lat], 
    [long], ROW_NUMBER() OVER (PARTITION BY [ID] ORDER BY [EFFDT] desc) AS [sequence]
    FROM [GEO]
  ) AS temp1
  WHERE [sequence] = 1
  AND [lat] IS NOT NULL
  AND [long] IS NOT NULL
) AS temp2
ORDER BY [ID]
Run Code Online (Sandbox Code Playgroud)

但那里没有空值,而且我只在我们的生产计算机(Production 13.0.4422.0)上收到错误,而在我们的开发计算机(Dev 13.0.1728.2)上却没有收到错误。经过几个小时的搜索和重试后,我发现通过重新排序一些东西,这是可行的:

SELECT [ID], [loc] …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql spatial sql-server-2016

6
推荐指数
1
解决办法
5203
查看次数

使用 OPENQUERY 执行脚本

我有一个 SQL Server 2008 实例,我想用它从 Oracle 服务器导入数据。

我已经设置了一个链接服务器,它在运行像SELECT * FROM table. 但是,如果我声明一个变量或循环遍历表中的行或OPENQUERY.

是否可以使用OPENQUERY? 我需要额外的权限吗?

sql-server-2008 oracle sql-server import linked-server

5
推荐指数
2
解决办法
2万
查看次数