SQL SERVER 字串按數字排序
需求是這樣的:
資料庫表裡面有一個欄位型別是nvachar,存的值是數字和字元混合的,要實現先按數字排序,再按字母倒序。
思路:
考慮這個欄位的值是否是有規律可循的,把要按數字排序的部分轉換為數字,再把剩下的字元排序。
資料表是下面這樣的:
LevelName就是那個數字和字母混合的欄位。
我這個表裡存的LevelName都是數字+單個字元的格式。於是可以把前面的部分轉換為數字,按數字排,剩下的部分按字母排。
語句這樣寫:
SELECT * FROM dbo.Level
ORDER BY CONVERT(INT, LEFT(LevelName, LEN(LevelName)-1 )) ASC, RIGHT(LevelName, 1) DESC
查詢結果:
PS:4B 比 4A 小。
相關推薦
SQL SERVER 字串按數字排序
需求是這樣的: 資料庫表裡面有一個欄位型別是nvachar,存的值是數字和字元混合的,要實現先按數字排序,再按字母倒序。 思路: 考慮這個欄位的值是否是有規律可循的,把要按數字排序的部分轉換為數字,再把剩下的字元排序。 資料表是下面這樣的: LevelName就是那
字串按數字排序
功能:按字串中的數字進行排序。 先對字串去重,然後排序使用正則表示式。 using System.Text.RegularExpressions; //引用 string[] stringArra
解決 Order By 將字串型別的數字 或 字串中含數字 按數字排序問題
oracle資料庫,欄位是varchar2型別即string,而其實存的是數字,這時候不加處理的order by的排序結果,肯定有問題 解決辦法: &
解決 Order By 將字串型別的數字 或 字串中含數字 按數字排序問題
oracle資料庫,欄位是varchar2型別即string,而其實存的是數字,這時候不加處理的order by的排序結果,肯定有問題 解決辦法: (1)cast( 要排序的欄位名 as integer) ,注意 integer 小寫
sql server 提取漢字/數字/字母的方法
軟件 gin lac repl server arch sdk soft returns ql server 提取漢字/數字/字母的方法 --提取數字IF OBJECT_ID(‘DBO.GET_NUMBER2‘) IS NOT NULLDROP FUNCTION DBO
SQL Server 與MySQL中排序規則與字符集相關知識的一點總結
bubuko col https 中文字符集 目前 創建 har 運算 進制 原文:SQL Server 與MySQL中排序規則與字符集相關知識的一點總結 字符集&&排序規則 字符集是針對不同語言的字符編碼的集合,比如UTF-8字符集,GBK字符集,G
Sql Server 中由數字轉換為指定長度的字符串
col str 函數 mss tmp 增長 數字 select 數據類型 一個列的數據類型是 int ,從 1 開始自動增長,另一個列是字符串,現在想把 int 列轉換成 九個字符,比如 1 轉換後就是 000000001 ,添到字符串列,怎麽實現呢? set @imaxU
SQL Server 字串函式
在開發T-SQL時,經常會需要對字串進行各種各樣的操作,下面介紹常用的字串函式。 1、獲取字元的ASCII碼 ASCII ASCII碼是對字元的標準編碼。要獲取字元的ASCII碼就可以通過呼叫ASCII函式來實現。 語法結構: ASCII(espression) 這裡的e
再談SQL Server字串拆分與表格分列
字串拆分函式 剛工作那會寫了一篇關於字串拆分的文章,那時僅僅是考慮實現就可以了,沒考慮效能、簡潔等因素,現總結一下常用方法以及優劣。 為了考慮程式碼的可讀性和複用性,一般用函式將實現細節封裝,下面介紹幾種常用的方法: 迴圈拆分實現 CREATE FUNCTION [dbo].
SQL Server字串聚合拼接辦法
文章原地址:https://www.cnblogs.com/stealth7/p/6891211.html 資料範例如下: 要得到的結果目標,獲取type相同的所有names拼接在一起的字串: SqlServer並沒有一個直接拼接字串的函式,下面所提到的方法,只是日常的開發中
用SQL將字串按分隔符拆為子串
專案中同一個型號包含多個尺碼資訊,這些資訊採用分隔符拼接在一起存放在一個欄位中,現在需要提交每個型號的各個尺碼資訊,也就是說原來一條記錄儲存的,現在需要變成多條記錄。下面給出原始表和插入資料的指令碼: create table A(Lot_Key varchar(15),
Sql Server字串拆分(Split)方法彙總
–方法0:動態SQL法 declare @s varchar(100),@sql varchar(1000) set @s=‘1,2,3,4,5,6,7,8,9,10’ set @sql=‘select col=’’’+ replace(@s,’,’,’’’ u
SQL Server字串各種查詢
一、查詢某值是否在以逗號隔開欄位內charindex(','[email protected]查詢字元+',',',[email protected]某個字串或欄位+',')>0SELECT COUNT(1) FROM [tb] where char
SQL SERVER 如何按月建立表分割槽?
比如有如下表需要以crt_time為標準按月分割槽create table gf_card ( id bigint not null, crt_time datetime not null, name v
c# 字串拆分 ;c# 中字串中的分號用逗號替換;SQL Server 字串中的分號用逗號替換
1、string[] ids = extData.Split(new char[] { ';' });2、extData.Replace(";", "','"); string.Format(strSQL, extData.Replace(";", "','"))3、1 se
oracle中字元型欄位按數字排序
今天在轉換資料時,遇到了一個主鍵排序的問題。字元型的主鍵,儲存的都是數字,資料導過來以後發現數據排序都是亂的,就想著按數字規則排序。 但發現to_number總是報錯,就想著裡面應該是有字元存在。後來使用了正則關係式,問題解決。 以下是正則關係式的兩種用法,記錄下來。 se
SQL Server字串比較時區別大小寫方法
是否區分大小寫與排序規則有關,排序規則中各部分含義如下所示: 舉例分析 Chinese_PRC_CS_AI_WS 前半部份:指UNICODE字符集,Chinese_PRC_指標對大陸簡體字UNICODE的排序規則。 排序規則的後半部份即字尾 含義:
SQL SERVER 判斷是否數字的方法
檢測是不是數字型的資料, 兩種方法 1. ISNUMERIC ( expression ) 2. PATINDEX ( '%pattern%' , expression ) 1. ISNUMERIC ( expression ) 如果是數字型別則返回 1 ,不是則返回 0 但ISNUMERIC有時是不可
MS-SQL Server字串處理函式大全
select語句中只能使用sql函式對欄位進行操作(連結sql server), select 欄位1 from 表1 where 欄位1.IndexOf("雲")=1; 這條語句不對的原因是indexof()函式不是sql函式,改成sql對應的函式就可以了。 left(
Microsoft SQL Server 字串操作中,獲取字串某個指定的符號個數方法
最近做專案遇到一個需求,需要計算某字串中某字元出現的次數,限於SQL server沒有對應直接用的函式,所以就自定義一個方法了。 方法利用到兩個函式 第一個函式: LEN函式 返回給定字串表示式的字元(而不是位元組)個數,其中不包含尾隨空格。 語法 LEN ( s